这次课主要学习了数据库的安全性控制。其中关于如何实现数据库安全性控制及权限的授予的方法是重点。
一、数据安全性控制
安全标准 TCSEC/TDI、CC
按照系统可靠性或可信程度逐渐增高;各安全级别之间偏序向下兼容
1、用户身份鉴别
静态口令、动态口令、生物特征识别、智能卡识别
2、存取控制
(1)定义用户权限
(2)合法权限检查(一起组成数据库管理系统的存取控制子系统)
DAC:自主存取控制---用户可以“自主”地决定将数据的存取权限授予何人、决定是否也将“授权”的权限授予别人。
MAC:强制存取控制---每个对象被标以一定密级,每个用户被授予某一个级别许可证。具有合法许可证的用户才可以存取某一对象。
主体:系统中的活动实体,包括数据库管理系统所管理的用户、代表用户的各进程;
客体:系统中的被动实体,受主体操纵的,包括文件、基本表、索引、视图等。
(仅当主体的许可证级别大于或等于客体的密级时毛概主题才能读取相应的客体。
仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。)
视图机制
为不同的用户定义不同的视图把数据对象限制在一定的范围内,隐藏要保密的数据。
审计功能
审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。审计员可以利用其监控数据库中的各种行为。
数据加密
存储加密 传输加密
授权:授予与收回
- 用户权限由数据库对象和操作类型组成。
- 定义存取权限叫做授权。
- 对创建数据库模式一类的数据库对象的授权则由数据库管理员在创建用户时实现。
- 三种权限模式:DBA、RESOURCE、CONNECT。
GRANT
GRANT<权限>[,<权限>]…
ON <对象类型><对象名>[,<对象类型><对象名>]…
TO<用户><用户>…
[WITH GRANT OPTION];
操作者:数据库管理员、数据库对象创建者、拥该权限的用户
接收者:一个或多个具体用户,或者全体用户PUBLIC
没有指定with grant option,则获得权限的用户只能使用改权限,不能传播。
不允许循环授权。
REVOKE
REVOKE<权限>[,<权限>]…
ON<对象类型><对象名>[,<对象类型><对象名>]…
FROM<用户>[,<用户>][CASCADE|RESTRICT]
级联CASCADE收回对象的权限及由对象传播出去的权限。