[例4.1] 把查询Student表权限授给用户U1
grant select
on Student
to U1;
[例4.2] 把对Student表和Course表的全部权限授予用户U2和U3grant
grant all privileges
on Course,Student
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 option : 授权或者收回给其他用户你给予的权限
grant insert
on SC
to U5
with grant option;
[例4.6] U5将权限赋予U6:
grant insert
on SC
to U6
with grant option;
同样,U6还可以将此权限授予U7:
[例4.7]
grant insert
on SC
to U7;
但U7不能再传播此权限
[例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;
例4.11通过角色来实现将一组权限授予一个用户。
步骤如下:
(1)首先创建一个角色 R1
create role R1;
(2)然后使用GRANT语句,使角色R1拥有Student表的 SELECT、UPDATE、INSERT权限
grant select, update, insert
on Student
to R1;
(3)将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
exec sp_addrolemember 'R1','王平'
exec sp_addrolemember 'R1','张明'
exec sp_addrolemember 'R1','赵玲'
[例4.12] 角色的权限修改(使角色R1在原来的基础上增加Student表的delete权限)
grant delete
on Student
to R1;
[例4.13] 删除R1,select权限
revoke select
on Student
from R1;
[例4.14] 建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明
--建立计算机系学生的视图CS_Student
create view CS_Student
as
select *
from Student
where Sdept='CS';
--在视图上进一步定义存取权限
grant select
on CS_Student
to U5;
grant all
on CS_Student
to U6;
[例4.15] 对修改SC表结构或修改SC表数据的操作进行审计
audit alter,update
on SC;
[例4.16] 取消对SC表的一切审计
noaudit alter,update
on SC;