数据库作业11:第四章课后题

数据库作业11:第四章课后题

本文可分为以下几个内容

  • 第六题
  • 第七题
  • 第八题

第六题

6.对下列两个关系模式:
学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)

使用GRANT语句完成以下授权功能:
先建立学生和班级关系模式

DROP TABLE IF EXISTS STUDENT1;
DROP TABLE IF EXISTS CLASS;


CREATE TABLE STUDENT1(--创建STUDENT表
	ID CHAR(20),--学号
	SNAME CHAR(20),--姓名
	SAGE SMALLINT,--年龄
	SSEX CHAR(9),--性别
	SADD CHAR(20),--住址
	SCID CHAR(20)--班级号
);

CREATE TABLE CLASS(--创建CLASS班级表
	CID CHAR(20),--班级号
	CNAME CHAR(20),--班级名
	CHEAD CHAR(20),--班主任
	CMON CHAR(20)--班长
);

数据库作业11:第四章课后题_第1张图片
(1)授权用户U1对两个表的所有权限,并可给其他用户授权。

GRANT ALL PRIVILEGES
ON STUDENT1
TO U1
WITH GRANT OPTION;

GRANT ALL PRIVILEGES
ON CLASS
TO U1
WITH GRANT OPTION;

数据库作业11:第四章课后题_第2张图片
(2)授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。

GRANT SELECT,UPDATE(SADD)
ON STUDENT1
TO U2;

数据库作业11:第四章课后题_第3张图片
(3)将对班级表查看权限授予所有用户。

GRANT SELECT
ON CLASS
TO PUBLIC;

数据库作业11:第四章课后题_第4张图片
(4)将对学生表的查询、更新权限授予角色R1。

GRANT SELECT,UPDATE
ON STUDENT1
TO R1;

数据库作业11:第四章课后题_第5张图片
(5)将角色R1授予用户U1,并且U1可继续授权给其他角色;

GRANT R1
TO U1
WITH GRANT OPTION;

第七题

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

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

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

建立题中两种关系

DROP TABLE IF EXISTS Workers;
DROP TABLE IF EXISTS Dep;


CREATE TABLE Workers(--创建职工表
	WID CHAR(20),--职工号
	WNAME CHAR(20),--姓名
	WAGE SMALLINT,--年龄
	WPOST CHAR(20),--职务
	WMON SMALLINT,--工资
	WPID CHAR(20)--部门号
);

CREATE TABLE Dep(--创建部门班级表
	DID CHAR(20),--部门号
	DNAME CHAR(20),--部门名
	DBOSS CHAR(20),--经理名
	DADD CHAR(20),--地址
	DTEL CHAR(20)--电话号
);

数据库作业11:第四章课后题_第6张图片
(1)用户王明对两个表有SELECT权限;

GRANT SELECT
ON Workers
TO 王明;

GRANT SELECT
ON Dep
TO 王明;

数据库作业11:第四章课后题_第7张图片
(2)用户李勇对两个表有INSERT和DELETE权限。

GRANT INSERT,DELETE
ON Workers
TO 李勇;

GRANT INSERT,DELETE
ON Dep
TO 李勇;

数据库作业11:第四章课后题_第8张图片
(3)每个职工只对自己的记录有SELECT的权限。

GRANT SELECT
ON Dep
WHEN USER()=WNAME
TO ALL;

GRANT SELECT
ON Workers
WHEN USER()=WNAME
TO ALL;

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

GRANT SELECT,UPDATE(WMON)
ON Workers
TO 刘星;

数据库作业11:第四章课后题_第9张图片
(5)用户张新具有修改这两个表的结构的权限。

GRANT ALTER
ON Workers
TO 张新;

数据库作业11:第四章课后题_第10张图片

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

GRANT ALL PRIVILEGES
ON Workers
TO 周平;
GRANT ALL PRIVILEGES
ON Dep
TO 周平;
WITH GRANT OPTION;

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

CREATE VIEW SWMON
AS
(SELECT DANME,MAX,MIN,AVG
FROM Dep
WHERE Dep.DID=Workers.WPID
GROUP BY Dep.DID
GRANT SELECT
ON SWMON
TO 杨兰

第八题

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

REVOKE SELECT
ON Workers
FROM 王明;

REVOKE SELECT
ON Dep
FROM 王明;

数据库作业11:第四章课后题_第11张图片
(2)

REVOKE INSERT,DELETE
ON Dep
TO 李勇;

REVOKE INSERT,DELETE
ON Workers
TO 李勇;

数据库作业11:第四章课后题_第12张图片
(3)

REVOKE SELECT
ON Workers
WHEN (USER)=NAME
FROM ALL;

(4)

REVOKE SELECT,UPDATE
ON Workers
FROM 刘星;

数据库作业11:第四章课后题_第13张图片
(5)

REVOKE ALTER
ON Workers
FROM 张新;

REVOKE ALTER
ON Dep
FROM 张新;

数据库作业11:第四章课后题_第14张图片
(6)

REVOKE ALL PRIVILIEGES
ON Dep
FROM 周平

REVOKE ALL PRIVILIEGES
ON Workers
FROM 周平

(7)

REVOKE SELECT
ON WMON
FROM 杨兰;

DROP VIEW WMON;

至此,第四章课后题已完成~

感谢阅读~

你可能感兴趣的:(数据库作业,sql,数据库)