数据库第四章课后作业

【摘要】 6.对下列两个关系模式:
学生(学号,姓名,年龄,性别,家庭住址,班级号) 班级(班级号,班级名,班主任,班长) 使用GRANT语句完成下列授权功能。 首先建表Student和Class表,创建U1和U2用户。 (1)授予用户U1对两个表的所有权限,并可给其他用户授权。
GRANT ALL PRIVILEGES
ON Class
TO U1
WITH GRANT …

6.对下列两个关系模式:

学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)
使用GRANT语句完成下列授权功能。
首先建表Student和Class表,创建U1和U2用户。
在这里插入图片描述
(1)授予用户U1对两个表的所有权限,并可给其他用户授权。

GRANT ALL PRIVILEGES
ON Class
TO U1
WITH GRANT OPTIONGRANT ALL PRIVILEGES
ON Student
TO U1
WITH GRANT OPTION

  
 

在这里插入图片描述
(2)授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。

GRANT SELECT,UPDATE(Saddress)
ON Student
TO U2;

  
 

在这里插入图片描述
(3)将对班级表查看权限授予所有用户。

GRANT SELECT
ON Class
TO PUBLIC;

  
 

在这里插入图片描述
(4)将对学生表的查询、更新权限授予角色R1。
创建角色R1.

GRANT SELECT,UPDATE
ON Student
TO R1;

  
 

在这里插入图片描述(5)将角色RI授予用户U1,并且U1可继续授权给其他角色。

GRANT R1
TO U1
WITH GRANT OPTION;

  
 

TSQL用EXEC sp_addrolemember '角色名','用户名'在这里插入图片描述

7.今有以下两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
在这里插入图片描述
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能。
(1)用户王明对两个表有SELECT权限。

GRANT SELECT
ON Workers
TO wm;
GRANT SELECT
ON WClass
TO wm;

  
 

在这里插入图片描述
(2)用户李勇对两个表有INSERT和DELETE权限。

GRANT SELECT,INSERT
ON Workers
TO ly;
GRANT SELECT,INSERT
ON WClass
TO ly;

  
 

在这里插入图片描述
(3)每个职工只对自己的记录有SELECT权限。

CREATE VIEW VIEW_WORKERS
AS SELECT *
FROM Workers
WHERE Wname = SYSTEM_USER;

  
 

用刘星用户登录,查询VIEW_WORKERS视图,只能看到自己的信息。
在这里插入图片描述
(4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限。

GRANT SELECT,UPDATE(Wpay)
ON Workers
TO lx

  
 

这里用刘星的账号进行了修改和查询。
在这里插入图片描述
(5)用户张新具有修改这两个表的结构的权限。

GRANT ALTER
ON Workers
TO zx;
GRANT ALTER
ON WClass
TO zx;

  
 

在这里插入图片描述
(6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限。

GRANT ALL PRIVILEGES
ON Workers
TO zx
WITH GRANT OPTION;
GRANT ALL PRIVILEGES
ON WClass
TO zx
WITH GRANT OPTION;

  
 

在这里插入图片描述
(7)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权限,他不能查看每个人的工资。

CREATE VIEW VIEW_PAY(Wname,paymax,paymin,payavg)
AS
SELECT Wnum,MAX(Wpay),MIN(Wpay),AVG(WPAY)
FROM Workers,WClass
WHERE WClass.number=Workers.Wnum
GROUP BY Wnum;
GRANT SELECT 
ON VIEW_PAY
TO yl;

  
 

在这里插入图片描述

8.针对习题7中(1)~(7)的每一种情况,撤销各用户所授予的权限。

(1)

REVOKE SELECT
ON Workers
FROM wm;//回收职工

REVOKE SELECT
ON WClass
FROM wm;//回收部门

  
 

(2)

REVOKE INSERT,DELETE
ON Workers
FROM ly;

REVOKE INSERT,DELETE
ON WClass
FROM ly;

  
 

(3)

REVOKE SELECT
ON VIEW_WORKERS
FROM PUBLIC;

  
 

(4)

REVOKE SELECT,UPDATE(Wpay)
ON Workers
FROM lx;

  
 

在这里插入图片描述
(5)

REVOKE ALTER
ON Workers
FROM zx;

REVOKE ALTER
ON WClass
FROM zx;

  
 

在这里插入图片描述
(6)

REVOKE ALL PRIVILEGES
ON Workers
FROM zp;

REVOKE ALL PRIVILEGES
ON WClass
FROM zp;

  
 

在这里插入图片描述
(7)

REVOKE SELECT 
ON VIEW_PAY
FROM yl;

  
 

在这里插入图片描述
登录杨兰的账号,查询不到VIEW_PAY,没有权限,收回权限成功。

文章来源: blog.csdn.net,作者:cristove,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/cristove/article/details/116010792

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享