数据库的安全性
1.数据库的安全性
(1)数据库的安全性是指 DBMS 应该保证的数据库的一种特性(机制或手段):免受非法,非授权用户的使用,泄漏,更改和破坏
2.数据安全性的分类
(1)DBMS的安全机制
1)自主安全机制:存取控制(用户自主管理)
2)强制安全性机制:将数据和用户分类
3)推断控制机制:由个体信息得到统计信息,用户使用统计信息
4)数据加密存储机制
(2)DBA的责任和义务
就是数据库管理员的能力问题(DBMS会创建一个超级用户给管理员使用)
3.自主安全性机制
(1)用户从DBA处获得使用数据库的一定权限,然后根据拥有的权限对数据库进行操作,也可以将权限转让给他人(授权者,授权)
(2)DBMS实现自主安全控制的方法——进行安全性检查
1)通过DCL语言定义安全性控制规则
2)用户访问时,自动进行检查
4.数据库自主安全性访问规则
(1)AccessRule ::= (S, O, t, P)
S:请求主题(用户)
O:访问对象(可大(object)可小(元组))
t:访问权利(创建,增删改查)
P:谓词(满足的条件)
(2)AccessRule通常存放在数据字典或系统目录中,构成了所有用户对DB的访问权利;
(3)用户多时,可以按用户组建立访问规则
(4)理解:S用户对O这个访问对象,在满足 P 条件下拥有 t 权利
5.自主安全性控制举例
(1)员工管理数据库的安全性控制示例
Employee(P#, Pname, Psex, Psalary, D#, HEAD)有如下的安全性访问要求:
员工管理人员:能访问数据库的所有数据
收发人员:只能访问姓名和部门,不能修改
员工:只能访问自己信息,且不能修改
部门领导:访问自己部门所有人员信息,不能修改
高级领导:访问所有人信息,不能修改
(2)两种控制示例
1)按名控制安全性——存储矩阵(实现SOt)
2)按内容控制安全性——视图(实现SOtP)
a:视图是安全性控制的重要手段
b:通过视图可以限制用户对关系中某些数据项的存取,例如:
视图1:Create EmpV1 as select * from Employee
视图2:Create EmpV2 as select Pname, D# from Employee //收发人员
c:通过视图可将数据访问对象与谓词结合起来,限制用户对关系中某些元组的存取,例如:
视图1:Create EmpV3 as select * from Employee where P# = :UserId
视图2:Create Empv4 as select * from Employee where Head = :userId
d:用户定义视图后,视图便成为新的数据对象,参与到存储矩阵与能力表中进行描述