1.1 非授权用户对数据库的恶意存取和破坏
1.2 数据库中重要或敏感的数据被泄露
1.3 安全环境的脆弱性
安全标准:TCSEC标准,CC标准
1.用户标识和鉴定
2.存取控制
3.视图
4.审计
5.数据加密
用户身份鉴别的方法:1.静态口令鉴别,2.动态口令鉴别,3.生物特征鉴别,4.智能卡鉴别。
1.自主存取控制:通过 SQL 的GRANT 语句和REVOKE 语句实现。
2.强制存取控制:在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类。主体是系统中的活动实体,客体是系统中的被动实体,受主体操纵。审计日志和视图审计就是。
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
GRANT语句的一般格式:
GRANT <权限>[,<权限>]…
ON <对象类型> <对象名>[,<对象类型> <对象名>]…
TO <用户>[,<用户>]…
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户 。WITH GRANT OPTION子句:指定:可以再授予;没有指定:表示不能传播。
发出GRANT:数据库管理员,数据库对象创建者(即属主Owner),拥有该权限的用户。
接受权限的用户 :一个或多个具体用户,PUBLIC(即全体用户) 。
1.把对Student表和Course表的全部权限授予用户U2和U3。
GRANT ALL PRIVILIGES ON TABLE Student,Course TO U2,U3;
2.把查询Student表和修改学生学号的权限授给用户U4。
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>[,<对象类型><对象名>]…
FROM <用户>[,<用户>]…[CASCADE | RESTRICT];
CREATE USER语句格式:
CREATE USER WITH][DBA|RESOURCE|CONNECT];
1.只有系统的超级用户才有权创建一个新的数据库用户。
2.新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA
3.如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。
角色的创建:CREATE ROLE <角色名>
给角色授权
GRANT <权限>[,<权限>]… ON <对象类型>对象名 TO <角色>[,<角色>]…
3.将一个角色授予其他的角色或用户
GRANT <角色1>[,<角色2>]… TO <角色3>[,<用户1>]… [WITH ADMIN OPTION]
3.1 该语句把角色授予某用户,或授予另一个角色
3.2 授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION,指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权限授予其他角色.
3.3. 一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限.
角色权限的收回
REVOKE <权限>[,<权限>]… ON <对象类型> <对象名> FROM <角色>[,<角色>]…
启用一个专用的审计日志(Audit Log),将用户对数据库的所有操作记录在上面。
审计事件:服务器事件,系统权限,语句事件,模式对象事件。
AUDIT语句:设置审计功能
NOAUDIT语句:取消审计功能
例如:对修改SC表结构或修改SC表数据的操作进行审计
AUDIT ALTER,UPDATE ON SC;
取消对SC表的一切审计
NOAUDIT ALTER,UPDATE ON SC;