数据库作业第四章:数据库安全性

【摘要】 本次作业主要了解数据库安全性的相关知识,数据库的数据保护主要包括数据的安全性和完整性,本次主要了解安全性
一,数据库安全性概述 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露,更改或破坏 1.1数据库的不安全性 1非授权用户对数据库的恶意存取和破坏 如:黑客猎取用户名和用户口令,破坏数据 2数据库中的重要或敏感的数据被泄露 为防止数据被泄露,数据库管理系…

本次作业主要了解数据库安全性的相关知识,数据库的数据保护主要包括数据的安全性和完整性,本次主要了解安全性

一,数据库安全性概述
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露,更改或破坏
1.1数据库的不安全性
1非授权用户对数据库的恶意存取和破坏
如:黑客猎取用户名和用户口令,破坏数据
2数据库中的重要或敏感的数据被泄露
为防止数据被泄露,数据库管理系统提供的主要技术由强制存取控制,数据加密存储和加密传输
3安全环境的脆弱性
操作系统安全的脆弱,网络协议安全保障的不足等都会数据库安全性的破坏

1.2,安全标准简介
计算机安全技术方面有一系列的安全标准最有影响的当推TCSEC和CC这两个标准,这里关于这两个安全标准的来源发展以及安全级别就不过多介绍

二 数据库安全性控制
在一般计算机系统中,安全系统使一级一级层层设置的,下面介绍与数据库相关主要包括用户身份鉴别,多层存取控制,审计,视图和数据加密等安全技术
2.1用户身份鉴别
用户身份鉴别使数据库管理系统提供的最外层安全保护措施。
用户身份鉴别的方法有很多种,常用的用户身份鉴别方法有以下几种
1 静态口令鉴别
这种方式是当前常用的鉴别方法。静态口令一般由用户自己设定,鉴别时只要按照输入正确的口令
2 动态口令鉴别
这种方式的口令是动态变化的
3 生物特征鉴别
它是一种通过生物特征进行认证的技术,生物特征是指生物唯一具有的,可测量的生物特征
4 智能卡识别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能

2.2存取控制
存取控制机制主要包括定义用户权限和合法权限检查两部分
1 定义用户权限,并将用户权限登记到数据字典中
2 合法权限检查

C2级的数据库管理系统支持自主存取控制,B1级的数据库管理系统支持强制存取控制
2.3自主存取控制方法
大型数据库管理系统都支持自主存取控制,SQL标准也对自主存取控制提供支持,主要通过SQL的GRANT语句和REVOKE语句来实现
用户权限是由两个要素组成的:数据库对象和操作类型。在数据库系统中定义存储权限成为授权
在非关系系统中,用户只能对数据进行操作,存取控制的数据库对象也仅限数据本身,存取控制的对象不仅有数据本身,还有数据库模式,这里关于关系数据库系统的存储权限之前列举过,就不过多介绍
2.4 授权:授予和收回
SQL中使用GRANT和REVOKE语句向用户授权或收回操作权限

1.GRANT
GRANT语句的一般格式为
GRANT<权限>
ON<对象类型><对象姓名>
TO<用户>
[WITH GRANT OPTION];

如果指定了WITH GRANT OPTION子句则获得某种权限的用户还可以把这种权限在授予其他用户
例:把查询Student表的权限授给用户U1

GRANT SELECT
ON TABLE Student
TO U1;

  
 

但出现了错误在这里插入图片描述
这里把TABLE去掉就能够运行了
在这里插入图片描述
可在属性中的权限中查看是否创建成功

在这里插入图片描述

把对Student表和Course表的全部操作权限授予用户U2和U3

GRANT ALL PRIVILEGES
ON  Student,Course
TO U2,U3;

  
 

在这里插入图片描述
这里又出现错误,不支持两个表同时授予

把两个表分开就可以运行

GRANT ALL PRIVILEGES
ON  Student
TO U2
GRANT ALL PRIVILEGES
ON  Course
TO U3;

  
 

在这里插入图片描述
显示ALL权限已不再推荐使用,我们在验证一下
在这里插入图片描述

把对表SC的查询权限授予所有用户

GRANT SELECT
ON  SC
TO PUBLIC;

  
 

在这里插入图片描述
执行成功

例:把查询Student表和修改学生学号的权限授给用户U4

GRANT UPDATE(Sno),SELECT
ON  Student
TO U4;

  
 

在这里插入图片描述

例: 把对SC的INSERT权限授予U5用户,并允许将此权限再授予其他用户

GRANT INSERT
ON  Student
TO U5
WITH GRANT OPTION;

  
 

在这里插入图片描述

执行此语句后U5不仅拥有了对表SC的INSERT权限,还可以传播此权限
例:U5可以将此权限授予U6

GRANT INSERT
ON  SC
TO U6
WITH GRANT OPTION;

  
 

2.REVOKE
授予用户的权限可以由授权者用REVOKE语句收回,REVOKE语句的一般格式
REVOKE<权限>
ON<对象类型><对象名>
FROM<用户>;

例:把用户U4修改学生学号的权限收回

REVOKE UPDATE(Sno)
ON  Student
FROM U4;

  
 

在这里插入图片描述

例:把用户U5对SC表的INSERT 权限收回

REVOKE INSERT 
ON  SC
FROM U5 CASCADE;

  
 

在这里插入图片描述

将用户U5的INSERT收回的同时,级联(CASCADE)收回了U6和U7的INSERT权限,否则系统将拒绝执行该命令

由此可见,用户可以“自主”的决定将数据的存取权限授予任何人,决定是否也将“授予”的权限授予别人,因此称这样的存取控制是自主存取控制

3.创建数据库模式的权限
GRANT和REVOKE语句向用户授予或收回对数据的操作权限。
对创建数据模式一类的数据库对象的授予则有数据库管理员在创建用户时实现
CREATE USER 语句的一般格式如下
CREATE USER[WITH][DBA|REAOURCE|CONNECT]
对CREATE USER 语句的说明如下;
1.只有系统的超级用户才有权限创建一个新的数据库用户
2,新创建的数据库用户有三种权限:CONNECT ,RESOURCE和DBA
3,CREATE USER命令中没有指定创建的新用户权限,默认该用户拥有CONNECT权限
4,拥有RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主,但不能创建模式,不能创建新的用户
5拥有DBA权限的用户时系统的超级用户,可以创建新的用户,创建模式,创建基本表和视图

2.5数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
1角色的创建
创建角色的SQL语句格式是
CREATE ROLE <角色名>
2 给角色授权
GRANT<权限>
ON<对象类型>
TO<角色>
例:通过角色来实现将一组权限授予一个用户
1首先创建一个角色R1

CREATE ROLE R1;

  
 

2然后使用GRANT语句,使角色R1拥有Student表的SELECT,UPDATE,INSERT权限

GRANT SELECT,UPDATE,INSERT
ON TABLE Student
TO R1;

  
 

3将这个角色授予王平,张明使他们具有角色R1所包含的全部权限

GRANT R1
TO 王平,张明;

  
 

例:角色权限修改

GRANT DELETE
ON TABLE Student
TO R1

  
 

使R1 在原来的基础上增加了Student表的DETELE权限

本次作业理论知识较多,要多去记忆,关于GRANT和REVOKE语句的掌握也要多去记忆

文章来源: blog.csdn.net,作者:sxyhaha3241,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_51081377/article/details/115740802

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享