数据库安全性
数据库安全性这一章主要包括如下几部分:数据库安全性控制,制图机制,审计,数据加密
数据库安全性控制:
例4.1 把查询Student表的权限授权给用户U1
GRANT SELECT
ON Student
to U1;
一开始按书上的代码来,一直告诉我‘,'附近有语法错误,后来把TABLE删掉就好了。
例4.2 把对Student表和Course表的全部权限授予用户U2,U3
GRANT ALL PRIVILEGES
ON Student,Course
TO U2,U3;
前提是你要创建这些新用户
例4.3 把对SC表的查询权限授予所有用户
GRANT SELECT
ON SC
TO PUBLIC;
例4.4 把查询Student表和修改学生学号的权限授予用户U4
GRANT UPDATE(Sno),SELECT
ON Student
TO U4;
例4.5 把对SC表的INSERT权限授予U5,并允许此权限再授予别人
GRANT INSERT
ON SC
TO U5
WITH GRANT OPTION;/*权限传递*/
例4.6 U5将上述权限授予U6
GRANT INSERT
ON SC
TO U6
WITH GRANT OPTION;
例4.7 U6将上述权限授予U7
GRANT INSERT
ON SC
TO U7;
因为U6没有把权限传递给U7,所以U7不能再向其他用户传递该权限。
例4.8 把U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON Student
FROM U4;
revoke就是取消,废除的意思。
例4.9 收回所有用户对表SC的查询权限
REVOKE SELECT
ON SC
FROM PUBLIC;
例4.10 把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON SC
FROM U5 CASCADE;
使用级联(CASCADE)命令可以成功收回权限,否则不行,因为刚刚U5把权限授予了U6,U7)。
例4.11通过角色来实现将一组权限授予一个用户
CREATE ROLE R1;/*创建新用户R1*/
GRANT SELECT,UPDATE,INSERT
ON Student
TO R1;/*授予R1权限*/
GRANT R1
TO 王平,张明,赵玲;/*将R1的权限授予此三人*/
REVOKE R1
FROM 王平;/*收回王平的权限*/
例4.12 角色的权限修改(增加R1对Student的DELETE权限)
GRANT DELETE
ON Student
TO R1;
例4.13 角色的权限修改(减去R1对Student的SELECT权限)
REVOKE SELECT
ON Student
FROM R1;
例4.14 建立计算机系学生的视图,然后把对该视图的SELECT权限授予王平,把该视图上的所有操作权限授予张明
CREATE VIEW CS_Student
AS
SELECT *
FROM Student
WHERE Sdept='CS';
/*新建视图*/
GRANT SELECT
ON CS_Student
TO 王平;
/*王平老师只能够检索计算机科学系学生的成绩*/
GRANT ALL PRIVILEGES
ON CS_Student
TO 张明;/*系主任张明可以检索和增删改计算机系学生信息的所有权限*/
例4.15 对修改SC表结构或修改SC表数据的操作进行审计
AUDIT ALTER,UPDATE
ON SC;
例4.16 取消对SC表的一切审计
NOAUDIT ALTER,UPDATE
ON SC;
总结,出现了非常多的语法错误,而且我目前有很多都不知道怎么解决,以至于不好截图,等我明白了会慢慢补上(TSQL的语法和课本上的标准SQL差好多。。。)