1.数据库的不安全因素:非授权用户对数据库的恶意存取和破坏;数据库中重要或敏感数据的泄露;安全环境的脆弱性。
2.权限的授权和回收
例题1:把查询Student表的权限授权给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
例题2:把Student和Course表的所有操作权限授权给U1,U2
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U1,U2;
例题3:把对表SC的查询权限授权给所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
例题4:把查询Student和修改学生学号的权限授权给U3
GRANT SELECT,UPDATE(Sno)
ON TABLE Student
TO U3;
例题5:将SC表的插入权限授予U4,并允许U4再将权限授予别人
GRANT INSERT
ON TABLE SC
TO U4
WITH GRANT OPTION;
例题6:把用户U3修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U3;
例题7:回收所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例题8:把用户U4以及被U4授权过的用户对表SC的插入权限收回
REVOKE INSERT
ON TABLE SC
FROM U4 CASCADE;
例题9:通过创建角色来实现一组权限的授予
//先创建角色
CREATE ROLE R1;
//授予R1对SC表的SELECT,UPDATE,INSERT权限
GRANT SELECT,UPDATE,INSERT
ON TABLE SC
TO R1;
//授予王平和张明R1的权限
GRANT R1
ON TABLE SC
TO 王平,张明;
//一次性回收张明的权限
REVOKE R1
FROM 张明;
3.主体的敏感度标记成为许可证级别(clearance level),客体的敏感度级别称为密级(classification level),当一个主体要访问一个客体时,当前仅当满足:
1)主体的许可证级别大于或等于客体时才有读取客体信息的权限
2)主体的许可证级别小于或等于客体时才有在客体写入信息的权限
4.审计:审计机制把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。审计员可以利用审计日志中的记录监控数据库中各种行为,重现导致数据库现状的一系列事件,找出非法存取数据的人,时间和内容等。
例题1:对修改SC表的结构或修改SC表数据的操作进行审计
AUDIT ALTER,UPDATE
ON SC;
例题2:取消对SC表的一切审计
NOAUDIT ALTER,UPDATE
ON SC;
5.数据加密包括:存储加密,传输加密
6.其他安全性保护:推理控制(inference control),隐蔽信道(covert channal),数据隐私(data privacy)