数据库第七周作业——第四章课后题

【摘要】
6.对下列两个关系模式:
  学生(学号、班级、年龄、性别、家庭住址、班级号)   班级(班级号,班级名,班主任,班长)
使用GRANT语句完成以下授权功能:
create table Student
(
Snum char(15) unique,
Sname char(10),
Sage int,
Ssex char(5),
Sloc char(2…

在这里插入图片描述

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

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

使用GRANT语句完成以下授权功能:

create table Student
(
	Snum char(15) unique,
	Sname char(10),
	Sage int,
	Ssex char(5),
	Sloc char(20),
	Scla char(5)
);
 
create table Class
(
	Cnum int,
	Cname char(10),
	Ctea char(10),
	Cmon char(10)
);

  
 

(1)授予用户U1对两个表的所有权限,并可给其他用户授权。

GRANT ALL PRIVILEGES
ON Student
TO U1
WITH GRANT OPTION;

GRANT ALL PRIVILEGES
ON Class
TO U1
WITH GRANT OPTION;

  
 

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

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

  
 

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

GRANT SELECT
ON Class
TO PUBLIC;

  
 

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

GRANT SELECT,UPDATE 
ON Student
TO R1;

  
 

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

alter role R1
add member U1

  
 

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

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

用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能

create table Staff
(
	Stnum char(15) unique,
	Stname char(10),
	Stage int,
	Stw char(5),
	Sts int,
	Stn char(5)
);
 
create table Dep
(
	Dnum int,
	Dname char(10),
	Dmag char(10),
	Dloc char(10),
	Dcall char(13),
);

  
 

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

GRANT SELECT
ON Staff
TO 王明;

GRANT SELECT
ON Dep
TO 王明;

  
 

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

GRANT INSERT,DELETE
ON Staff
TO 李勇;

GRANT INSERT,DELETE
ON Dep
TO 李勇;

  
 

在这里插入图片描述

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

GRANT SELECT 
ON Staff
WHERE USER()=Sname
TO ALL;

  
 

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

GRANT SELECT,UPDATE(Salary)
ON Staff
TO 刘星;

  
 

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

GRANT ALTER TABLE
ON Staff,Department
TO 张新;

  
 

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

GRANT ALL PRIVILEGES
ON Staff,Department
TO 周平
WITH GRANT OPTION;

  
 

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

--建立视图
GRANT VIEW V_Salary
AS 
SELECT Dname,Max(Salary),Min(Salary),AVG(Salary)
FROM Staff,Department
WHERE Staff.Dnum=Department.Dnum
GROUP BY STAFF.Dnum;

--授权杨兰
GRANT SELECT
ON V_Salary
TO 杨兰;

  
 

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

1.
REVOKE SELECT
ON Staff,Department
FROM 王明;

2.
REVOKE INSERT,DELETE
ON Staff,Department
FROM 李勇;

3.
REVOKE SELECT 
ON Staff
WHERE USER()=Sname
FROM ALL;

4.
REVOKE SELECT,UPDATE(Salary)
ON Staff
FROM 刘星;

5.
REVOKE ALTER TABLE
ON Staff,Department
FROM 张新;

6.
REVOKE ALL PRIVILEGES
ON Staff,Department
FROM 周平;

7.
REVOKE SELECT
ON V_Salary
FROM 杨兰;
DROP VIEW V_Salary;

  
 

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

原文链接:blog.csdn.net/m0_50759850/article/details/115801477

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