第四章作业

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

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

使用GRANT语句完成下列授权操作:
首先建立题目中使用的表格:

CREATE TABLE STUDENT1
(SNO CHAR(12) ,
SNAME CHAR(10) ,
SAGE CHAR(2),
SSEX CHAR(2),
SADD CHAR(30),
SCNO CHAR(10));
CREATE TABLE CLASS
(SCNO CHAR(10),
CNAME CHAR(10),
BOSS CHAR(10),
CMO CHAR(10));

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

GRANT ALL
ON STUDENT1
TO U1
WITH GRANT OPTION;
GRANT ALL
ON CALSS
TO U1
WITH GRANT OPTION;

在这里插入图片描述

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

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

在这里插入图片描述

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

GRANT SELECT
ON CLASS
TO PUBLIC;

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

GRANT SELECT,UPDATE
ON STUDENT1
TO R1;

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

ALTER ROLE R1
ADD MEMBER U1;

在这里插入图片描述

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

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

用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
首先建立题目要求的表格:

CREATE TABLE WORK
(WNO CHAR(10),
WNAME CHAR(10),
WAGE CHAR(10),
POS CHAR(10),
MON SMALLINT,
DNO CHAR(10));
CREATE TABLE DEP
(DNO CHAR(10),
DNAME CHAR(10),
BNAME CHAR(10),
ADR CHAR(20),
PHON CHAR(11));

还需要进行下面的用户建立
在这里插入图片描述

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

GRANT SELECT 
ON WORK
TO 王明;
GRANT SELECT 
ON DEP
TO 王明;

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

GRANT INSERT,DELETE
ON WORK
TO 杨勇;
GRANT INSERT,DELETE 
ON DEP
TO 杨勇;

在这里插入图片描述
(3)每个职工只对自己的记录有SELECT权限。
对于每个人能查看自己的视图,说明知识看表的允许部分,并不对表进行修改,所以使用视图知识

CREATE VIEW USERS
AS
SELECT *
FROM WORK
WHERE WNO=USER;

然后对每个人开放查看权限

GRANT SELECT
ON USERS
TO PUBLIC;

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

GRANT SELECT,UPDATE(MON)
ON WORK
TO 刘星;

在这里插入图片描述
(5)用户张新具有修改这两个表的结构的权限。

GRANT UPDATE
ON WORK
TO 张新;
GRANT UPDATE
ON DEP
TO 张新;

在这里插入图片描述

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

GRANT SELECT,INSERT,UPDATE,DELETE
ON WORK
TO 周平
WITH GRANT OPTION;
GRANT SELECT,INSERT,UPDATE,DELETE
ON DEP
TO 周平
WITH GRANT OPTION;

在这里插入图片描述

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

CREATE VIEW YANG
AS
SELECT MAX(MON) MAXM,MIN(MON) MINM,AVG(MON) AVGM
FROM WORK;
GRANT SELECT
ON YANG
TO 杨兰;

在这里插入图片描述

撤销7.授予的权限

(1)

REVOKE SELECT
ON WORK
FROM 王明;
REVOKE SELECT
ON DEP
FROM 王明;

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

REVOKE INSERT,DELETE
ON WORK
FROM 杨勇;
REVOKE INSERT,DELETE
ON DEP
FROM 杨勇;

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

REVOKE select
ON USERS
FROM PUBLIC;
DROP VIEW USERS

在这里插入图片描述

(4)

REVOKE SELECT,UPDATE(MON)
ON WORK
FROM 刘星;

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

REVOKE UPDATE
ON DEP
FROM 张新;
REVOKE UPDATE
ON WORK
FROM 张新;

在这里插入图片描述

(6)

REVOKE SELECT,INSERT,UPDATE,DELETE
ON WORK
FROM 周平 CASCADE;
REVOKE SELECT,INSERT,UPDATE,DELETE
ON DEP
FROM 周平 CASCADE;

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

REVOKE SELECT
ON YANG
FROM 杨兰;
DROP VIEW YANG;

在这里插入图片描述
总结:蛮累的,收回权限要比放出权限简单,对于标准SQL 和T-SQL来说,掌握规则就ok

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值