第5章安全性控制技术
n 如果 HumanResources 是 Administration 角色的 成员。如果以后将 Employees 上的 SELECT 权限 授予了 Administration,则 HumanResources 的 成员可以通过 Administration 中的成员资格看到该 表。
n 但是,如果对 HumanResources 拒绝SELECT权限 ,则即使以后向 Administration 授予权限, HumanResources 也不会继承该权限
n GRANT CREATE DATABASE, CREATE TABLE TO Mary, John
n 授予全部语句权限给用户Rose
n GRANT ALL to Rose
第5章安全性控制技术
(3)授予权限
n 例子:授予对象权限
n GRANT SELECT ON authors TO public GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom
n 解决:对系统控制下的所有主客体实施强制存取控制策略
第5章安全性控制技术
2、强制存取控制方法
n 每一个数据对象被标以一定的密级 n 每一个用户也被授予某一个级别的许可 n 对于任意一个对象,只有具有合法许可的
用户才可以存取
第5章安全性控制技术
(1)主体和客体
n 在MAC中,DBMS所管理的全部实体被分为主 体和客体两大类
第5章安全性控Leabharlann 技术(5)废除权限n 例子: 废除授予用户帐户的语句权限
n 下例废除已授予用户 Joe 的 CREATE TABLE 权限。它删除了允许 Joe 创建表的权 限。不过,如果已将 CREATE TABLE 权限 授予给了包含 Joe 的任何角色,那么 Joe 仍 可创建表。
n REVOKE CREATE TABLE FROM Joe
第5章安全性控制技术
(4)拒绝权限
n 例子:拒绝语句权限
n 下例对多个用户拒绝多个语句权限。用户不 能使用 CREATE DATABASE 和 CREATE TABLE 语句
n DENY CREATE DATABASE, CREATE TABLE TO Mary, John
n 对用户Rose拒绝全部语句权限
第5章安全性控制技术
(8)实现用户自定义的授权
n 例:规定“只能在周一到周五的上班时间9:00-17:00之 间处理仓库数据”
CREATE TRIGGER secure_ck ON 仓库 FOR INSERT,DELETE,UPDATE AS IF DATENAME(weekday, getdate())='星期六'
语句权限
n GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure
第5章安全性控制技术
(5)废除权限
n 例子: 废除授予多个用户帐户的多个权限
n 下例废除授予多个用户的多个语句权限。
n REVOKE CREATE TABLE, CREATE INDEX FROM Mary, John
第5章安全性控制技术
(5)废除权限
n 例子: 废除拒绝的权限
n 用户 Mary 是 Budget 角色的成员,已给该角 色授予了对 Budget_Data 表的 SELECT 权 限。已对 Mary 使用 DENY 语句以防止 Mary 通过授予 Budget 角色的权限访问 Budget_Data 表
n 系统提供一定的方式让用户标识自己的名 字或身份;
n 系统内部记录着所有合法用户的标识; n 每次用户要求进入系统时,由系统核对用
户提供的身份标识; n 通过鉴定后才提供系统使用权。 n 用户标识和鉴定可以重复多次
第5章安全性控制技术
2、用户标识自己的名字或身份
n 用户名/口令
n 简单易行,容易被人窃取
第5章安全性控制技术
(4)拒绝权限
n 拒绝给当前数据库内的安全帐户授予权限
语句权限: DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ] 对象权限: DENY
{ ALL [ PRIVILEGES ] | permission [ ,...n ] } {
n 角色是权限的一个集合,可以指派给用户 或其它角色。这样只对角色进行权限设置 便可以实现对多个用户权限的设置
第5章安全性控制技术
(5)废除权限
n 举例:DENY与REVOKE区别
n 从 HumanResources 角色中删除 Employees 表上 的 SELECT 访问权限将废除该权限,从而使 HumanResources 不能再使用该表。
第5章安全性控制技术
(7)授权粒度
n 关系数据库中授权的数据对象粒度
n 数据库 n表 n 属性列 n行
第5章安全性控制技术
(8)实现用户自定义的授权
n 利用存取谓词
n 存取谓词可以很复杂
n 可以引用系统变量,如终端设备号,系统时钟等, 实现与时间地点有关的存取权限,这样用户只能在 某段时间内,某台终端上存取有关数据
}
| ON { user_defined_function }
} TO security_account [ ,...n ]
对象权限
[ WITH GRANT OPTION ]
[ AS { group | role } ]
第5章安全性控制技术
(3)授予权限
n 例子:授予语句权限
n 下面的示例给用户 Mary 和 John 授予多个语 句权限。
OR DATENAME(weekday, getdate())='星期日' OR (convert(INT,DATENAME(hour, getdate())) NOT BETWEEN
9 AND 17) BEGIN
RAISERROR ('只许在工作时间操作!', 16, 1) ROLLBACK TRANSACTION END
n Deal with data sharing
n 完整性控制技术
n Enable constraints
n 安全性控制技术
n Authorization and authentication
第5章安全性控制技术
主要内容
n 数据库安全性控制概述 n 用户标识与鉴别 n 存取控制 n 视图机制
第5章安全性控制技术
n DENY ALL to Rose
第5章安全性控制技术
(4)拒绝权限
n 例子:拒绝对象权限
n DENY INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom
第5章安全性控制技术
(5)废除权限
n 废除以前授予或拒绝的权限。
n 废除类似于拒绝,但是,废除权限是删除 已授予的权限,并不妨碍用户、组或角色 从更高级别继承已授予的权限。因此,如 果废除用户查看表的权限,不一定能防止 用户查看该表,因为已将查看该表的权限 授予了用户所属的角色。
n C2级 n 灵活
n 强制存取控制(Mandatory Access Control ,简称 MAC)
n B1级 n 严格
第5章安全性控制技术
1、自主存取控制方法
n 同一用户对于不同的数据对象有不同的存 取权限
n 不同的用户对同一对象也有不同的权限 n 用户还可将其拥有的存取权限转授给其他
用户
第5章安全性控制技术
n 首先查询包括张三在内的一组人的平均工资 n 然后查用自己替换张三后这组人的平均工资 n 从而推导出张三的工资
第5章安全性控制技术
一、数据库安全性控制概述
n 计算机系统中的安全模型
高
应用
方法: 用户标识 和鉴定
安全性控制层次
DBMS
存取控制 审计 视图
OS
操作系统 安全保护
低
DB
密码存储
第5章安全性控制技术
n 下例删除对 Mary 拒绝的权限,并通过适用于 Budget 角色的 SELECT 权限,允许 Mary 对该表使用 SELECT 语句。
n REVOKE SELECT ON Budget_Data TO Mary
第5章安全性控制技术
(6)权限验证
n 对于通过鉴定后又进一步发出存取数据库 操作的用户
第5章安全性控制技术
2020/11/26
第5章安全性控制技术
Databases protection
n 数据库保护:排除和防止各种对数据库的干扰破 坏,确保数据安全可靠,以及在数据库遭到破坏 后尽快地恢复
n 数据库保护通过四个方面来实现
n 数据库的恢复技术
n Deal with failure
n 并发控制技术
n 每个用户预先约定好一个计算过程或者函 数
n 系统提供一个随机数 n 用户根据自己预先约定的计算过程或者函数
进行计算 n 系统根据用户计算结果是否正确鉴定用户身
份
第5章安全性控制技术
三、存取控制
n 存取控制机制的功能
n 授权(Authorization)
n 对每个用户定义存取权限
n 验证(Authentication)
n DBMS查找数据字典,根据其存取权限对操 作的合法性进行检查