SQL Server——从入门到放弃(8)-- GRANT/ REVOKE / AUDIT 练习

Ivie ·
更新时间:2024-11-14
· 580 次阅读

从今天开始就要开始第四章——数据库安全性的学习。现在,开始练习。

关系数据库系统中存取控制对象
在这里插入图片描述

此次练习需要多个用户,所以首先应该创造几个用户。

在这里插入图片描述
然后就是发现,用户的登录名不能相同,不然会报错。

1.GRANT

GRANT [,]…
ON [,]…
TO [,]…
[WITH GRANT OPTION ]

WITH GRANT OPTION子句:
。 指定:可以再授予
。没有指定:不能传播 语义:将对指定操作对象的指定操作权限授予指定的用户

【例4.1】把查询Student表权限授给用户U1

grant select on table Student to U1

执行之后
在这里插入图片描述
正确语句:

grant select on Student to U1

【例4.2】把对Student表和Course表的全部权限授予用户U2,U3

grant all privileges on Student,Course to U2,U3

执行后
在这里插入图片描述
此时可以改为

grant all privileges on Student to U2,U3 grant all privileges on 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

执行之后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限。

【例4.6】

grant insert on SC to U6 with grant option

同样,U6还可以将此权限授予U7
(但这里我感觉这也不是U5授予的,前面不都是这么写的吗?
希望有那位读者可以给出解答)

【例4.7】

grant insert on SC to U7

U7不能再传播此权限。

2.REVOKE
一般格式:
REVOKE [,]…
ON [, ]…
FROM [,]…[CASCADE | RESTRICT]

【例4.8】把用户U4修改学生学号的权限收回

revoke update(Sno) on Student from U4

【例4.9】收回所有用户对表SC的查询权限

revoke select on SC from public

【例4.10】把用户U5对SC表的INSERT权限收回

revoke insert on SC from U5 cascade 将用户U5的INSERT权限回收时应该使用CASCADE,否则拒绝执行该语句(谢天谢地,CASCADE终于能用了



SQL Server SQL REVOKE grant

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章