第5章安全性控制技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章安全性控制技术
(8)实现用户自定义的授权
n 例:规定“只能在周一到周五的上班时间9:00-17:00之 间处理仓库数据”
CREATE TRIGGER secure_ck ON 仓库 FOR INSERT,DELETE,UPDATE AS IF DATENAME(weekday, getdate())='星期六'
n 首先查询包括张三在内的一组人的平均工资 n 然后查用自己替换张三后这组人的平均工资 n 从而推导出张三的工资
第5章安全性控制技术
一、数据库安全性控制概述
n 计算机系统中的安全模型
高
应用
方法: 用户标识 和鉴定
安全性控制层次
DBMS
存取控制 审计 视图
OS
操作系统 安全保护
低
DB
密码存储
第5章安全性控制技术
第5章安全性控制技术
(4)拒绝权限
n 拒绝给当前数据库内的安全帐户授予权限
语句权限: DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ] 对象权限: DENY
{ ALL [ PRIVILEGES ] | permission [ ,...n ] } {
n 解决:对系统控制下的所有主客体实施强制存取控制策略
第5章安全性控制技术
2、强制存取控制方法
n 每一个数据对象被标以一定的密级 n 每一个用户也被授予某一个级别的许可 n 对于任意一个对象,只有具有合法许可的
用户才可以存取
第5章安全性控制技术
(1)主体和客体
n 在MAC中,DBMS所管理的全部实体被分为主 体和客体两大类
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 如果 HumanResources 是 Administration 角色的 成员。如果以后将 Employees 上的 SELECT 权限 授予了 Administration,则 HumanResources 的 成员可以通过 Administration 中的成员资格看到该 表。
n 但是,如果对 HumanResources 拒绝SELECT权限 ,则即使以后向 Administration 授予权限, HumanResources 也不会继承该权限
n Deal with data sharing
n 完整性控制技术
n Enable const来自百度文库aints
n 安全性控制技术
n Authorization and authentication
第5章安全性控制技术
主要内容
n 数据库安全性控制概述 n 用户标识与鉴别 n 存取控制 n 视图机制
第5章安全性控制技术
[ ( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } | ON { user_defined_function } } TO security_account [ ,...n ] [ CASCADE ]
第5章安全性控制技术
(7)授权粒度
n 关系数据库中授权的数据对象粒度
n 数据库 n表 n 属性列 n行
第5章安全性控制技术
(8)实现用户自定义的授权
n 利用存取谓词
n 存取谓词可以很复杂
n 可以引用系统变量,如终端设备号,系统时钟等, 实现与时间地点有关的存取权限,这样用户只能在 某段时间内,某台终端上存取有关数据
n 每个用户预先约定好一个计算过程或者函 数
n 系统提供一个随机数 n 用户根据自己预先约定的计算过程或者函数
进行计算 n 系统根据用户计算结果是否正确鉴定用户身
份
第5章安全性控制技术
三、存取控制
n 存取控制机制的功能
n 授权(Authorization)
n 对每个用户定义存取权限
n 验证(Authentication)
}
| ON { user_defined_function }
} TO security_account [ ,...n ]
对象权限
[ WITH GRANT OPTION ]
[ AS { group | role } ]
第5章安全性控制技术
(3)授予权限
n 例子:授予语句权限
n 下面的示例给用户 Mary 和 John 授予多个语 句权限。
第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 表
第5章安全性控制技术
(9)自主存取控制小结
n 定义存取权限
n 用户
n 检查存取权限
n DBMS
n 授权粒度
n 数据对象粒度:数据库、表、属性列、行
n 优点
n 能够通过授权机制有效地控制其他用户对敏感数据的存取
n 缺点
n 可能存在数据的“无意泄露”:低级别用户访问到保密数据
n 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数 据本身并无安全性标记
OR DATENAME(weekday, getdate())='星期日' OR (convert(INT,DATENAME(hour, getdate())) NOT BETWEEN
9 AND 17) BEGIN
RAISERROR ('只许在工作时间操作!', 16, 1) ROLLBACK TRANSACTION END
n DENY ALL to Rose
第5章安全性控制技术
(4)拒绝权限
n 例子:拒绝对象权限
n DENY INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom
第5章安全性控制技术
(5)废除权限
n 废除以前授予或拒绝的权限。
n 废除类似于拒绝,但是,废除权限是删除 已授予的权限,并不妨碍用户、组或角色 从更高级别继承已授予的权限。因此,如 果废除用户查看表的权限,不一定能防止 用户查看该表,因为已将查看该表的权限 授予了用户所属的角色。
n DBMS查找数据字典,根据其存取权限对操 作的合法性进行检查
n 若用户的操作请求超出了定义的权限,系统 将拒绝执行此操作
第5章安全性控制技术
(7)授权粒度
n 授权粒度是指可以定义的数据对象的范围
n 它是衡量授权机制是否灵活的一个重要指标 n 授权定义中数据对象的粒度越细,即可以定
义的数据对象的范围越小,授权子系统就越 灵活。
一、数据库安全性控制概述
n 非法使用数据库的情况
n 用户编写一段合法的程序绕过DBMS及其授 权机制,通过操作系统直接存取、修改或备 份数据库中的数据;
n 直接或编写应用程序执行非授权操作; n 通过多次合法查询从数据库中推导出一些保
密数据
第5章安全性控制技术
一、数据库安全性控制概述
n 例:某数据库应用系统禁止查询单个人的 工资,但允许查任意一组人的平均工资。 用户甲想了解张三的工资,于是他:
n 下例删除对 Mary 拒绝的权限,并通过适用于 Budget 角色的 SELECT 权限,允许 Mary 对该表使用 SELECT 语句。
n REVOKE SELECT ON Budget_Data TO Mary
第5章安全性控制技术
(6)权限验证
n 对于通过鉴定后又进一步发出存取数据库 操作的用户
(1)存取权限
n 存取权限由两个要素组成
n 数据对象 n 操作类型
第5章安全性控制技术
(2)关系数据库系统中的存取权限
第5章安全性控制技术
(2)关系数据库系统中的存取权限
n 关系数据库系统中的存取权限定义方法
n GRANT/REVOKE/DENY
第5章安全性控制技术
(3)授予权限
n GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ]
n 角色是权限的一个集合,可以指派给用户 或其它角色。这样只对角色进行权限设置 便可以实现对多个用户权限的设置
第5章安全性控制技术
(5)废除权限
n 举例:DENY与REVOKE区别
n 从 HumanResources 角色中删除 Employees 表上 的 SELECT 访问权限将废除该权限,从而使 HumanResources 不能再使用该表。
n 系统提供一定的方式让用户标识自己的名 字或身份;
n 系统内部记录着所有合法用户的标识; n 每次用户要求进入系统时,由系统核对用
户提供的身份标识; n 通过鉴定后才提供系统使用权。 n 用户标识和鉴定可以重复多次
第5章安全性控制技术
2、用户标识自己的名字或身份
n 用户名/口令
n 简单易行,容易被人窃取
第5章安全性控制技术
2020/11/26
第5章安全性控制技术
Databases protection
n 数据库保护:排除和防止各种对数据库的干扰破 坏,确保数据安全可靠,以及在数据库遭到破坏 后尽快地恢复
n 数据库保护通过四个方面来实现
n 数据库的恢复技术
n Deal with failure
n 并发控制技术
n C2级 n 灵活
n 强制存取控制(Mandatory Access Control ,简称 MAC)
n B1级 n 严格
第5章安全性控制技术
1、自主存取控制方法
n 同一用户对于不同的数据对象有不同的存 取权限
n 不同的用户对同一对象也有不同的权限 n 用户还可将其拥有的存取权限转授给其他
用户
第5章安全性控制技术
一、数据库安全性控制概述
n 数据库安全性控制的常用方法
n 用户标识和鉴定 n 存取控制 n 视图 n 审计 n 密码存储
第5章安全性控制技术
二、用户标识与鉴别
n 用户标识与鉴别(Identification & Authentication)
n 系统提供的最外层安全保护措施
第5章安全性控制技术
1、用户标识与鉴别基本方法
n 对于通过鉴定获得上机权的用户(即合法用户), 系统根据他的存取权限定义对他的各种操作请求进 行控制,确保他只执行合法操作
n 授权和验证机制一起组成了DBMS的安全子 系统
第5章安全性控制技术
三、存取控制
n 常用存取控制方法
n 自主存取控制(Discretionary Access Control,简称DAC)
第5章安全性控制技术
(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拒绝全部语句权限
语句权限
n GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure
(8)实现用户自定义的授权
n 例:规定“只能在周一到周五的上班时间9:00-17:00之 间处理仓库数据”
CREATE TRIGGER secure_ck ON 仓库 FOR INSERT,DELETE,UPDATE AS IF DATENAME(weekday, getdate())='星期六'
n 首先查询包括张三在内的一组人的平均工资 n 然后查用自己替换张三后这组人的平均工资 n 从而推导出张三的工资
第5章安全性控制技术
一、数据库安全性控制概述
n 计算机系统中的安全模型
高
应用
方法: 用户标识 和鉴定
安全性控制层次
DBMS
存取控制 审计 视图
OS
操作系统 安全保护
低
DB
密码存储
第5章安全性控制技术
第5章安全性控制技术
(4)拒绝权限
n 拒绝给当前数据库内的安全帐户授予权限
语句权限: DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ] 对象权限: DENY
{ ALL [ PRIVILEGES ] | permission [ ,...n ] } {
n 解决:对系统控制下的所有主客体实施强制存取控制策略
第5章安全性控制技术
2、强制存取控制方法
n 每一个数据对象被标以一定的密级 n 每一个用户也被授予某一个级别的许可 n 对于任意一个对象,只有具有合法许可的
用户才可以存取
第5章安全性控制技术
(1)主体和客体
n 在MAC中,DBMS所管理的全部实体被分为主 体和客体两大类
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 如果 HumanResources 是 Administration 角色的 成员。如果以后将 Employees 上的 SELECT 权限 授予了 Administration,则 HumanResources 的 成员可以通过 Administration 中的成员资格看到该 表。
n 但是,如果对 HumanResources 拒绝SELECT权限 ,则即使以后向 Administration 授予权限, HumanResources 也不会继承该权限
n Deal with data sharing
n 完整性控制技术
n Enable const来自百度文库aints
n 安全性控制技术
n Authorization and authentication
第5章安全性控制技术
主要内容
n 数据库安全性控制概述 n 用户标识与鉴别 n 存取控制 n 视图机制
第5章安全性控制技术
[ ( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } | ON { user_defined_function } } TO security_account [ ,...n ] [ CASCADE ]
第5章安全性控制技术
(7)授权粒度
n 关系数据库中授权的数据对象粒度
n 数据库 n表 n 属性列 n行
第5章安全性控制技术
(8)实现用户自定义的授权
n 利用存取谓词
n 存取谓词可以很复杂
n 可以引用系统变量,如终端设备号,系统时钟等, 实现与时间地点有关的存取权限,这样用户只能在 某段时间内,某台终端上存取有关数据
n 每个用户预先约定好一个计算过程或者函 数
n 系统提供一个随机数 n 用户根据自己预先约定的计算过程或者函数
进行计算 n 系统根据用户计算结果是否正确鉴定用户身
份
第5章安全性控制技术
三、存取控制
n 存取控制机制的功能
n 授权(Authorization)
n 对每个用户定义存取权限
n 验证(Authentication)
}
| ON { user_defined_function }
} TO security_account [ ,...n ]
对象权限
[ WITH GRANT OPTION ]
[ AS { group | role } ]
第5章安全性控制技术
(3)授予权限
n 例子:授予语句权限
n 下面的示例给用户 Mary 和 John 授予多个语 句权限。
第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 表
第5章安全性控制技术
(9)自主存取控制小结
n 定义存取权限
n 用户
n 检查存取权限
n DBMS
n 授权粒度
n 数据对象粒度:数据库、表、属性列、行
n 优点
n 能够通过授权机制有效地控制其他用户对敏感数据的存取
n 缺点
n 可能存在数据的“无意泄露”:低级别用户访问到保密数据
n 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数 据本身并无安全性标记
OR DATENAME(weekday, getdate())='星期日' OR (convert(INT,DATENAME(hour, getdate())) NOT BETWEEN
9 AND 17) BEGIN
RAISERROR ('只许在工作时间操作!', 16, 1) ROLLBACK TRANSACTION END
n DENY ALL to Rose
第5章安全性控制技术
(4)拒绝权限
n 例子:拒绝对象权限
n DENY INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom
第5章安全性控制技术
(5)废除权限
n 废除以前授予或拒绝的权限。
n 废除类似于拒绝,但是,废除权限是删除 已授予的权限,并不妨碍用户、组或角色 从更高级别继承已授予的权限。因此,如 果废除用户查看表的权限,不一定能防止 用户查看该表,因为已将查看该表的权限 授予了用户所属的角色。
n DBMS查找数据字典,根据其存取权限对操 作的合法性进行检查
n 若用户的操作请求超出了定义的权限,系统 将拒绝执行此操作
第5章安全性控制技术
(7)授权粒度
n 授权粒度是指可以定义的数据对象的范围
n 它是衡量授权机制是否灵活的一个重要指标 n 授权定义中数据对象的粒度越细,即可以定
义的数据对象的范围越小,授权子系统就越 灵活。
一、数据库安全性控制概述
n 非法使用数据库的情况
n 用户编写一段合法的程序绕过DBMS及其授 权机制,通过操作系统直接存取、修改或备 份数据库中的数据;
n 直接或编写应用程序执行非授权操作; n 通过多次合法查询从数据库中推导出一些保
密数据
第5章安全性控制技术
一、数据库安全性控制概述
n 例:某数据库应用系统禁止查询单个人的 工资,但允许查任意一组人的平均工资。 用户甲想了解张三的工资,于是他:
n 下例删除对 Mary 拒绝的权限,并通过适用于 Budget 角色的 SELECT 权限,允许 Mary 对该表使用 SELECT 语句。
n REVOKE SELECT ON Budget_Data TO Mary
第5章安全性控制技术
(6)权限验证
n 对于通过鉴定后又进一步发出存取数据库 操作的用户
(1)存取权限
n 存取权限由两个要素组成
n 数据对象 n 操作类型
第5章安全性控制技术
(2)关系数据库系统中的存取权限
第5章安全性控制技术
(2)关系数据库系统中的存取权限
n 关系数据库系统中的存取权限定义方法
n GRANT/REVOKE/DENY
第5章安全性控制技术
(3)授予权限
n GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ]
n 角色是权限的一个集合,可以指派给用户 或其它角色。这样只对角色进行权限设置 便可以实现对多个用户权限的设置
第5章安全性控制技术
(5)废除权限
n 举例:DENY与REVOKE区别
n 从 HumanResources 角色中删除 Employees 表上 的 SELECT 访问权限将废除该权限,从而使 HumanResources 不能再使用该表。
n 系统提供一定的方式让用户标识自己的名 字或身份;
n 系统内部记录着所有合法用户的标识; n 每次用户要求进入系统时,由系统核对用
户提供的身份标识; n 通过鉴定后才提供系统使用权。 n 用户标识和鉴定可以重复多次
第5章安全性控制技术
2、用户标识自己的名字或身份
n 用户名/口令
n 简单易行,容易被人窃取
第5章安全性控制技术
2020/11/26
第5章安全性控制技术
Databases protection
n 数据库保护:排除和防止各种对数据库的干扰破 坏,确保数据安全可靠,以及在数据库遭到破坏 后尽快地恢复
n 数据库保护通过四个方面来实现
n 数据库的恢复技术
n Deal with failure
n 并发控制技术
n C2级 n 灵活
n 强制存取控制(Mandatory Access Control ,简称 MAC)
n B1级 n 严格
第5章安全性控制技术
1、自主存取控制方法
n 同一用户对于不同的数据对象有不同的存 取权限
n 不同的用户对同一对象也有不同的权限 n 用户还可将其拥有的存取权限转授给其他
用户
第5章安全性控制技术
一、数据库安全性控制概述
n 数据库安全性控制的常用方法
n 用户标识和鉴定 n 存取控制 n 视图 n 审计 n 密码存储
第5章安全性控制技术
二、用户标识与鉴别
n 用户标识与鉴别(Identification & Authentication)
n 系统提供的最外层安全保护措施
第5章安全性控制技术
1、用户标识与鉴别基本方法
n 对于通过鉴定获得上机权的用户(即合法用户), 系统根据他的存取权限定义对他的各种操作请求进 行控制,确保他只执行合法操作
n 授权和验证机制一起组成了DBMS的安全子 系统
第5章安全性控制技术
三、存取控制
n 常用存取控制方法
n 自主存取控制(Discretionary Access Control,简称DAC)
第5章安全性控制技术
(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拒绝全部语句权限
语句权限
n GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure