数据库—第四章课后题

**

数据库习题—第四章

**
一、对下列两个关系模式:

学生(学号、班级、年龄、性别、家庭住址、班级号)
班级(班级号,班级名,班主任,班长)

使用grant完成一下授权功能(
学生表我们用 Student表示
班级表我们用Class表示
)
(1)授予用户U1对两个表的所有权限,并可给其他用户授权。

grant all
on Student------grant中我们只能对一个表进行操作(在Sql sever中)
to U1 ,U2
with grant option;


grant all privileges
on Class  
to U1
with grant option;

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

grant select,update(address)
on Student
to U2;

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

grant select 
on Class
to public;

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

grant select,update
on Student
to R1;

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

grant R1
to U1
with admin option;-----标准sql语句,sqlsever无法运行

系统爆红提示应该是grant,我从csdn上查了一些东西好像sql server中并没有这个语句,统一使用的是grant。


二、有以下两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)

用sql的grant和revoke语句(加上视图机制)完成以下操作要求

(1)用户王明对两个表有SELECT权限。

grant select 
on Staff
to 王明;

grant select 
on Department
to 王明;

(2)用户李勇对两个表有insert和delete权限。

grant insert,delete
on Staff
to 李勇;

grant insert,delete
on Department 
to 李勇;

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

GRANT SELECT ON 职工

WHEN USER()=NAME

TO ALL;

``
这个不懂,书上也没有 参考下面博客写的。确实在书上没找到,如果有找到的麻烦留言一下hhh,[数据库笔记(四)(五)(六)(七)](https://blog.csdn.net/weixin_42148975/article/details/111898906?ops_request_misc=&request_id=&biz_id=102&utm_term=sqlsever%20when%20&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-111898906.pc_search_result_hbase_insert)

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

```cpp
grant update(Wages),select
on Staff
to 刘星;

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

grant update
on Staff
to 张新;

grant update
on Department
to 张新;

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

grant all 
on Staff
to 周平
with grant option;

grant all 
on Department
to 周平
with grant option;

(7)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,他不能查看每个人的工资。


create view View(MAX1,MIN1,AVG1)
as 
select Staff.Name,MAX(Wedge),MIN(Wedge),AVG(Wedge)
from Staff--------建立视图View来达到隐藏信息的目的

grant select 
on View
to 杨兰;------授予杨兰检索权

三、针对上一题目中的每一种情况,撤销授权。

一、
revoke select
on Staff
from 王明;

revoke select
on Department 
from 王明;
-------------------------------------------------------------
二、
revoke select,insert
on Staff
from 李勇;

revoke select,insert
on Department
from 李勇;

-------------------------------------------------------------
三、
REOVKE SELECT ON 职工
WHEN USER ( ) =NAME
FROM ALI ;
----------------------------------------------------------
四、
revoke update , select
on Staff
to 刘星;
-----------------------------------------------------------------
五、
revoke alter,table
on Staff
from 张新;

revoke alter,table
on Department
from 张新;
-------------------------------------------------------------------
六、
revoke all privileges
on Staff
to 周平;

-------------------------------------------------------------------
七、
revoke select
on View_Wed
from 杨兰;


撤销其实在标准语句中就是把grant语句换成revoke语句,不过在sql server中会有更多不同的情况,比如对类用户权限撤销操作等,希望下周总结能理清一下关系。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值