(1)数据库安全性的含义
数据库的安全性指的是DBMS应该保证的数据库的一种特性(机制或者手段):免受非法、非授权用户的访问,泄露、破坏或更改。
(2)数据库安全性管理涉及的方面:
社会法律和伦理、公共政策或者制度、安全策略 数据的安全级别
数据的安全级别:绝密、机密、可信、和无分类
数据库系统DBS的安全级别: 物理控制、网络控制、操作系统控制或者DBMS控制
(3)DBMS的安全机制:
自主安全性机制:存取控制(ACCESS CONTROL)
通过权限在用户之间的传递,使用户自主管理数据库的安全性
强制安全性机制:
通过对数据和用户强制分类,使得不同类别的用户能够访问不同类别的数据
推断控制机制:
防止通过历史信息,推断出不该被知道的信息
防止通过共公开信息(通过聚集信息)推断出私密信息。通常在一些由个体数据组成的公共数据库中此问题尤为突出
数据加密存储机制
通过加密解密保护数据,秘钥。加密、解密方法与传输。
(4)DBA管理员的责任和义务
(1)熟悉相关的法规、政策,协助组织的决策者制定好相关的安全策略
(2)规划好安全控制保障措施,例如,系统安全级别、不同级别上的安全控制
措施,对安全遭破坏的响应,
(3)划分好数据的安全级别以及用户的安全级别
(4)实施安全性控制:DBMS专门提供一个DBA账户,该账户是一个超级用户
或称系统用户。DBA利用该账户的特权可以进行用户账户的创建以及权限授
予和撤消、安全级别控制调整等
数据库自主安全性机制的实现:通过自主安全性是通过授权实现的。DBMS允许数据库管理员利用DCL语言定义一些安全性控制规则,当有DB访问操作时,DBMS自动按照安全性控制规则进行检查,检查通过则允许访问,不通过你则不允许访问。
数据库自主安全性访问规则:
DBMS将权利和用户(账号)结合在一起,形成一个访问规则表,依据该规则表可以实现对数据库的安全访问控制。
·············································
自主安全性的实现方式
注:用户定义视图之后,视图便成为一新的数据对象,参与到存储矩阵与能力表中进行描述
(5)SQL安全性机制
(1)SQL语言的用户和权利
SQL语言包含了DDL/DML 和DCL数据库安全控制属于DCL范畴。
关系级别(普通用户)、账户级别(程序员用户)超级用户(DBA)
级别1:READ;
级别2:Insert Update Delete 元组数据
级别3:CREATE 创建表空间、模式、表、索引、视图ALTER、 Drop等
注:级别高的权利自动包含级别低的权利。如某人拥有更新的权利,它也自动拥有读的权利。在有些DBMS中,将级别3的权利称为账户级别的权利,而将级别1和2称为关系级别的权利。
(2)SQL-DCL的命令及其应用
授权:
GRANT {all PRIVILEGES | privilege {,privilege…}}
ON [TABLE] tablename | viewname
TO {public | user-id {, user-id…}}
[WITH GRANT OPTION];//是否允许将权利授予别人
user-id ,某一个用户账户,由DBA创建的合法账户
public, 允许所有有效用户使用授予的权利
privilege是下面的权利: SELECT | INSERT | UPDATE | DELETE | ALL PRIVILEDGES
WITH GRANT OPTION选项是允许被授权者传播这些权利
示例
假定高级领导为Emp0001, 部门领导为Emp0021, 员工管理员为Emp2001,
收发员为Emp5001(均为UserId, 也即员工的P#)
Grant All PriviledgesON Employee TO Emp2001;
Grant SELECT ON EmpV2 TO Emp5001 ;
Grant SELECT ON EmpV3 TO public;
Grant SELECT ON EmpV4 TO Emp0021;
注:授予视图访问的权利,并不意味着授予基本表访问的权利(两个级别:基本
关系级别和视图级别)
注:授权者授予的权利必须是授权者已经拥有的权利
收回授权
收回授权命令
REVOKE {all privilEges | priv {, priv…} } ON tablename | viewname
FROM {public | user {, user…} };
示例
revoke select on employee from UserB;
自主安全性的授权过程及其问题
授权过程:(1)DBA创建DB 并为每一个用户创建一个账户
(2)DBA授予某用户账户级别的权利
因而需要注意的问题是:要控制授权用户的传播范围。
强制安全性机制
强制安全性对数据对象进行安全性分级
:绝密、机密、可信、无分类、
同时对用户也进行上述的安全性分级
从而强制实现不同级别用户访问不同级别数据的一种机制。
访问规则:低级别用户不能修改高级别数据 高级别用户不能修改低级别数据(修改之后,低级别用户没办法访问)
强制安全性机制的实现
DBMS引入强制安全性机制,可以通过扩展关系模式来实现。给每个关系元组增加安全分级。
注:强制安全性机制使得关系形成多级关系。(不同级用户看到不同的关系子集)也出现多重示例,多级关系完整性等问题或者新的处理技巧。