SQL Server——从入门到放弃(9)-- 第四章:数据库安全性 习题

在经过一系列的坑中翻滚之后,今天,第四章习题,他来了,他带着温(kong)柔(bu)走来了。😅

在这里插入图片描述

在这里插入图片描述
(1) 授予用户U1对两个表的所有权限,并可给其他用户授权

grant all
on 学生
to U1
with grant option

grant all
on 班级
to U1
with grant option

(2)授予用户U2对学生表具有查看权限,对于家庭住址具有更新权限

grant select,update(家庭住址)
on 学生
to U2

(3)将对班级表查看权限授予所有用户

grant select 
on 班级
to public

(4)将对学生表的查询、更新权限授予角色R1

grant select,update
on 学生
to R1

(5)将角色R1授予用户U1,并且U1可继续授权给其他角色

grant R1
to U1
with admin option

说明:标准SQL中,在表名之前应该有TABLE关键字,比如(3)应为

grant select 
on table 班级
to public

其余几个题也都类似,下面的题也是这样,就不另作说明了。

在这里插入图片描述
(1)用户王明对两个表有SELECT权限

grant select
on 职工
to 王明

grant select
on 部门
to 王明

(2)用户李勇对两个表有INSERT和DELETE权限

grant insert,delete
on 职工
to 李勇

grant insert,delete
on 部门
to 李勇

(3)每个职工只对自己的记录有SELECT权限

grant select
on 职工
to 

不知道填啥,查完之后

grant select
on 职工
when user()=name
to all

虽然查到了答案,但我还是不懂,when user()=name语句的含义还是不明白,查也没查出来。😓

(4)用户刘星对职工表有SELECT 权限,对工资字段具有更新权限

grant select
on 职工
to 刘星

grant update(工资)
on 职工
to 刘星

(5)用户张新具有修改这两个表的权限

grant alter
on 职工
to 张新

grant alter
on 部门
to 张新

(6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限

grant all
on 职工
to 周平
with grant option

grant all
on 部门
to 周平
with grant option

(7)用户杨兰具有从每个部门职工中 SELECT 最高工资、最低工资、平均工资的权限,他不能查看每个人的工资。
看到这个题脑子里一片空白,完全么的思路。没办法,查呗。
原来是要建立视图,利用视图进行操作。
建立视图

create view 部门-工资(部门号,名称,最高工资,最低工资,平均工资)
as
select 部门.部门号,名称,max(工资),min(工资),avg(工资)
from 职工,部门
where 部门.部门号=职工.部门号
group by 部门.部门号

授权

grant select
on 部门-工资
to 杨兰

在这里插入图片描述
(1)解除用户王明对两个表的SELECT权限

revoke select
on 部门
from 王明

revoke select
on 职工
from 王明

(2)解除用户李勇对两个表的INSERT和DELETE权限

revoke insert,delete
on 部门
from 李勇

revoke insert,delete
on 职工
from 李勇

(3)撤销每个职工对自己记录的SELECT权限
授予权限我不会,撤销权限,我也不会😓,尴尬。

revoke select
on 职工
when user()=name
from all

(4)撤销用户刘星对职工表的SELECT 权限,对工资字段具有的更新权限

revoke select ,update(工资)
on 职工
from 刘星

(5)撤销用户张新具有的修改这两个表的权限

revoke alter
on 职工
from 张新

revoke alter
on 部门
from 张新

(6)收回用户周平对两个表的所有权限

revoke all
on 职工
from 周平 CASCADE

revoke all
on 部门
from 周平 CASCADE

(7)撤销用户杨兰的权限

revoke select
 on 部门-工资
from 杨兰
drop view 部门-工资
/*删视图*/

应该和第7题写一起来着,授予权限,撤销权限,正好对比。失策失策。

好了,作业完成,最后做一个小小的总结:
总的来说,这次的练习题倒不算太难,但是有好多坑,比如说在SQL Server中 ON后面不可接两个及以上对象,如有需要,要分开写,并且再执行语句时应该去掉TABLE VIEW等关键字,否则会执行错误。其他的就是比如7-3这类的题还要认识了解。

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值