【2019-2020春学期】数据库作业11:SQL练习7 - GRANT/ REVOKE / AUDIT

[4.1]把查询Student表权限授给用户U1
grant select
on student
to u1;
点开选择,后面打勾

[4.2]把对Student表和Course表的全部权限授予用户U2和U3
grant all privileges
on student
to u2,u3;
grant all privileges
on course
to u2,u3;
sqlsever中似乎不支持对多个table进行同时操作。

[4.3]把对表SC的查询权限授予所有用户
grant select
on sc
to public;
无异常

[4.4]把查询Student表和修改学生学号的权限授给用户U4
grant select,update(sno)
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.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;
这里除了点插曲,显示错误,结果发现是权限问题本身就不存在,我就又重来了一遍全过程。。。

[4.11]通过角色来实现将一组权限授予一个用户。
创建角色:
create role a1;
没什么好说的

grant select,update,insert
on student
to a1;
(授权)

grant a1
to U1,U2,U3;
(把角色权限授予给用户)

revoke a1
from U1,U2;
//标准SQL但在SQLSEVER中不可用,等价于:
exec sp_droprolemember ‘a1’,‘U1’
exec sp_droprolemember ‘a1’,‘U2’
(将用户权限收回)

[4.12]角色的权限修改。
grant delete
on student
to a1;
差不多的操作

[4.13]使a1减少了SELECT权限
revoke select
on student
from a1;
修改和授权总感觉差不多

[4.14]建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明

create view cs_s
as
select *
from student
where sdept=‘cs’;
//创建视图
grant select
on cs_s
to 王平;
//在视图的基础上进行授权
grant all
on cs_s
to 张明;

[4.15]对修改SC表结构或修改SC表数据的操作进行审计

audit alter,update
on sc;
审计时有部分语法错误

[4.16]取消对SC表的一切审计

onaudit alter,update
on sc;
同样也有语法错误,而且错的一样。

你可能感兴趣的:(【2019-2020春学期】数据库作业11:SQL练习7 - GRANT/ REVOKE / AUDIT)