1、An Introduction to Database System第六章第六章 数据库安全性数据库安全性An Introduction to Database System数据库安全性控制概述(续)数据库安全性控制概述(续)n数据库安全性控制的常用方法n用户标识和鉴定n存取控制n视图n审计n密码存储An Introduction to Database System计算机系统中的安全模型计算机系统中的安全模型 应用应用DBMSOS DB 低低 高高安全性控制层次安全性控制层次 方法:方法:用户标识用户标识和鉴定和鉴定 存取控制存取控制审计审计视图视图 操作系统操作系统 安全保护安全保护 密码
2、存储密码存储 An Introduction to Database System6.1 数据库安全性控制数据库安全性控制6.1.1 用户标识与鉴别6.1.2 存取控制6.1.3 自主存取控制方法6.1.4 强制存取控制方法6.1.5 视图机制6.1.6 审计6.1.7 数据加密An Introduction to Database System6.1.1 用户标识与鉴别用户标识与鉴别n用户标识与鉴别(Identification&Authentication)An Introduction to Database System6.1.1 用户标识与鉴别用户标识与鉴别基本方法n系统提供一定的方
3、式让用户标识自己的名字或身份;n系统内部记录着所有合法用户的标识;n每次用户要求进入系统时,由系统核对用户提供的身份标识;n通过鉴定后才提供机器使用权n用户标识和鉴定可以重复多次An Introduction to Database System创建用户创建用户nCREATE USER username 用户名用户名nIDENTIFIED BY password 用户口令用户口令An Introduction to Database System更改用户更改用户An Introduction to Database System删除用户删除用户ndrop user scott CASCADE;
4、n如果加CASCADE 则连同用户的 对象一起删除 An Introduction to Database System6.1 数据库安全性控制数据库安全性控制6.1.1 用户标识与鉴别6.1.2 存取控制6.1.3 自主存取控制方法6.1.4 强制存取控制方法6.1.5 视图机制6.1.6 审计6.1.7 数据加密An Introduction to Database System存取控制(续)存取控制(续)n常用存取控制方法n自主存取控制(Discretionary Access Control,简称DAC)n灵活n强制存取控制(Mandatory Access Control,简称 MA
5、C)n严格An Introduction to Database System6.1.3 自主存取控制方法自主存取控制方法n定义存取权限n存取权限n 存取权限由两个要素组成n数据对象n操作类型An Introduction to Database System自主存取控制方法(续)自主存取控制方法(续)n关系系统中的存取权限关系系统中的存取权限(续续)n定义方法定义方法nGRANT/REVOKEGRANT/REVOKE授权语句:授权语句:GRANT GRANT ON ON TO TO WITH GRANT OPTIONWITH GRANT OPTION回收语句回收语句REVOKE REVOKE
6、 ON ON FROM FROM RESTRICT|CASCADERESTRICT|CASCADEAn Introduction to Database Systemn GRANT SELECT GRANT SELECT,UPDATE ON S TO WANG WITH GRANT OPTION UPDATE ON S TO WANG WITH GRANT OPTION n GRANT INSERT GRANT INSERT(S#S#,C#C#)ON SC TO LOU WITH GRANT OPTIONON SC TO LOU WITH GRANT OPTIONn GRANT UPDATE
7、GRANT UPDATE(SCORESCORE)ON SC TO WENON SC TO WENn GRANT REFERENCES GRANT REFERENCES(C#C#)ON C TO BAO WITH GRANT OPTION ON C TO BAO WITH GRANT OPTION n GRANT USAGE ON DOMAIN AGE TO CHEN GRANT USAGE ON DOMAIN AGE TO CHENn REVOKE SELECT REVOKE SELECT,UPDATE ON S FROM WANG CASCADE UPDATE ON S FROM WANG
8、CASCADE n REVOKE INSERT REVOKE INSERT(S#S#,C#C#)ON SC FROM ZHANG RESTRICTON SC FROM ZHANG RESTRICTn REVOKE GRANT OPTION FOR REFERENCES REVOKE GRANT OPTION FOR REFERENCES(C#C#)ON C FROM BAO ON C FROM BAO 自主存取控制方法自主存取控制方法An Introduction to Database System自主存取控制方法(续)自主存取控制方法(续)n检查存取权限n对于获得上机权后又进一步发出存取数
9、据库操作的用户nDBMS查找数据字典,根据其存取权限对操作的合法性进行检查n若用户的操作请求超出了定义的权限,系统将拒绝执行此操作An Introduction to Database System6.1 数据库安全性控制数据库安全性控制6.1.1 用户标识与鉴别6.1.2 存取控制6.1.3 自主存取控制方法6.1.4 强制存取控制方法6.1.5 视图机制6.1.6 审计6.1.7 数据加密An Introduction to Database System6.1.4 强制存取控制方法强制存取控制方法n什么是强制存取控制n强制存取控制(MAC)是指系统为保证更高程度的安全性,按照TDI/TC
10、SEC标准中安全策略的要求,所采取的强制存取检查手段。An Introduction to Database System强制存取控制方法(续)强制存取控制方法(续)n 强制存取控制规则n当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。An Introduction to Database System6.1.5 视图机制视图机制n视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,n 视图机制
11、更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。An Introduction to Database System视图机制(续)视图机制(续)n视图机制与授权机制配合使用:n首先用视图机制屏蔽掉一部分保密数据n视图上面再进一步定义存取权限n间接实现了支持存取谓词的用户权限定义An Introduction to Database System视图机制(续)视图机制(续)例:王平只能检索计算机系学生的信息 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT FROM Student WHERE S
12、dept=CS;An Introduction to Database System视图机制(续)视图机制(续)在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO 王平;An Introduction to Database System6.1 数据库安全性控制数据库安全性控制6.1.1 用户标识与鉴别6.1.2 存取控制6.1.3 自主存取控制方法6.1.4 强制存取控制方法6.1.5 视图机制6.1.6 审计6.1.7 数据加密An Introduction to Database System6.1.6 审计审计n什么是审计n启用一个专用的审计日志(Audit Log)将用户对数据库的所有操作记录在上面nDBA可以利用审计日志中的追踪信息 找出非法存取数据的人nC2以上安全级别的DBMS必须具有审计功能