sql练习 grant /revoke

grant

(1) 一般格式:
grant <权限> [<权限>]
on <对象类型><对象名>
to <用户>[,<用户>]
[with grant option ]

首先创建用户u1
右键单击用户,选择创建新用户如果出现了错误如图
在这里插入图片描述
需要换一个登录名
【例4.1】
直接使用书中例子会出错 ,
在这里插入图片描述
需要去掉table

grant select 
on TEST.Student
to u1

可以在u1中看到
在这里插入图片描述

【例4.2】
首先创建u2,u3用户
如果使用书中的例子也会报错,改为:

grant all 
on TEST.Student
to u2,u3

grant all 
on TEST.Course
to u2,u3

【例4.3】
将SC的查询权限给所有的用户

grant select 
on TEST.SC
to public
 

可以在角色中找到public,点击【安全对象】查询
【例4.4】
将student的修改学号信息以及查询student学生信息给u4

grant select, update(Sno)
on TEST.Student
to u4

【例4.5】
将inert权限交给u5 允许u5 传给别人

grant insert 
on TEST.SC
to u5
with grant option 

【例4.6】
u5 将权限传给u6

grant insert 
on TEST.SC
to u6 
with grant option 
--什么区别

【例4.7】

grant insert 
on TEST.SC
to u7

如图
在这里插入图片描述
u7 允许insert ,但是不允许转授.

revoke<权限>[,<权限>]
on <对象类型><对象名>[,<对象类型>]
from <用户>[,<用户>]...[cascade] 

【例4.8】

revoke update (Sno)
on TEST.Student
from u4

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

revoke select
on TEST.SC
from public 

可以在public中查看【安全对象】
【例 4.10】

revoke insert 
on TEST.SC
from u5 cascade 

--如果不使用cascade会报错
--终于可以用了

角色
被命名的 一组与数据库操作相关的权限
角色是权限的集合,作为一组具有相同的权限的用户创建一个角色
【例4.11】

create role <角色名>
给角色授权
grant <权限>[,<权限>]
on <对象类型> 对象名
to <角色>[,<角色>]

角色的授权
grant <权限>[,<权限>]
on <角色3>[,<用户名>]
[with admin  option ]
角色的收回
revoke <权限>[<>]

【例4.11】

create role r1
--
grant select ,update,insert 
on table TEST.Student
to r1 
grant r1
to 王平
---要先创建王平这个用户不再赘述

上面的代码在SQLserver中不支,有两种方法
(1)手动添加
在这里插入图片描述
(2)分为两种方法

exec sp_addrolemember 'r1','王平'

可以在【用户】中查看王平的【成员身份】查看到r1角色

使用下面代码可以删除

exec sp_droprolemember 'r1','王平'

也可以使用下面的代码

alter role r1
add member 王平
-- add / drop 

【4.12】
增加role的权限

grant delete
on TEST.Student
to r1

【4.13】

revoke select
on TEST.Student
from r1

知识点:
强制存取控制规则
(1)
仅当主体的许可证级别大于等于客体的密级时,主体才能读相应的客体
(2)仅当主体的许可证级别小于或等于客体的级别可以 写相应的客体
视图机制:
将保密的数据对于一些无权查询的用户隐藏起来
【4.14】
建立一个视图,将select的权限给王平,将所有的权限给u1(做了修改)

create view cs_student
as 
select *
from TEST.Student
where Sage=18

grant select 
on cs_student
to 王平
grant all 
on cs_student
to u1

发布了15 篇原创文章 · 获赞 12 · 访问量 7042

猜你喜欢

转载自blog.csdn.net/weixin_44724691/article/details/105146782