第四节 Oracle数据库的安全性措施 (1) (2)
DBA角色,允许用户执行授权命令,建表,对任何表的数据进行操纵。DBA角色涵盖了前两种角色,此外
还可以执行一些管理操作。DBA角色拥有最高级别的权限。ORACLE的权限:系统权限;数据库对象的权限。
2.数据库对象的权限,ORACLE可以授权的数据库对象:基本表;视图;序列;同义词;存储过程;函数。
基本表的安全性级别:表级;行级;列级。
表级权限——ALTER: 修改表定义;DELETE:删除表记录;INDEX: 在表上建索引;INSERT: 向表中
插入数据记录;SELECT:查找表中记录;UPDATE:修改表中的数据;ALL: 上述所有权限。
表级授权使用GRANT/REVOKE语句。
例: GRANT SELECT ON SC TO U12;
行级安全性,ORACLE行级安全性由视图间接实现。
例:用户U1只允许用户U12查看自己创建的Student表中有关信息系学生的信息,则首先创建视图信息系
学生视图S_IS:
CREATE VIEW S_IS
AS
SELECT Sno,Sname,Ssex,Sage,Sdept
FROM Student
WHERE Sdept='IS';
然后将关于该视图的SELECT权限授予U12用户:GRANT SELECT ON S_IS TO U12;
列级安全性,实现方法,由视图间接实现。直接在基本表上定义。借助视图实现列级安全性:
CREATE VIEW S_V
AS
SELECT Sno.Sname
FROM Student;
GRANT SELECT ON S_V TO U12;
直接在基本表上定义列级安全性。
例:GRANT UPDATE(Sno,Cno) ON SC TO U12;上一级对象的权限制约下一级对象的权限,ORACLE对数据
库对象的权限采用分散控制方式。允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用
户。ORACLE不允许循环授权:
U1 ───→ U2 ───→ U3 ───→ U4
↑ │
└───────×─────────┘
ORACLE的授权与检查机制:ORACLE的权限信息记录在数据字典中,当用户进行数据库操作时。ORACLE首先
根据数据字典中的权限信息,检查操作的合法性。
四、用户定义的安全性措施,用数据库级触发器定义用户级安全性,触发器存放在数据字典中。用户每
次对Student表执行INSERT、UPDATE或DELETE自动触发该触发器。系统检查当时的系统时间,如是周六或周日,
或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。利用触发器进一步细化审计规则,
使审计操作的粒度更细。
|