第七章 数据库安全性

第一节 第二节 第三节 第四节

第四节 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点,系统会拒绝执行用户的更新操作,并提示出错信息。利用触发器进一步细化审计规则,
使审计操作的粒度更细。

吉林大学网络教育学院 版权所有