数据库系统概论第四章作业题

大三上:数据库系统概论所有实验报告和课后作业

8.今有两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
(1)用户王明对两个表有SELECT权力;
(2)用户李勇对两个表有INSERT和DELETE权力;
(3)每个职工只对自己的记录有SELECT权力;
(4)用户刘星对职工表有SELECT权力,对工资字段具有更新权力;
(5)用户张新具有修改这两个表的结构的权力;
(6)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力;
(7)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。

--(1)
GRANT SELECT ON 职工,部门 TO 王明;

--(2)
GRANT INSERT, DELETE ON 职工,部门 TO 李勇;

--(3)
GRANT SELECT ON 职工 WHEN USER() = NAME TO ALL;
-- 这里假定系统的GRANT语句支持WHEN子句和USER ()的使用。用户将自己的名字作为ID。注意,不同的系统这些扩展语可能是不同的。读者应该了解你使用的DBMS产品的扩展语句。

-- (4)
GRANT SELECT, UPDATE (工资) ON 职工 TO 刘星;

-- (5)
GRANT ALTER TABLE ON 职工,部门 TO 张新;

-- (6)
GRANT ALL PRIVILEGES ON 职工,部门 TO 周平 WITH GRANT OPTION;

-- (7)
-- 首先建立一个视图。然后对这个视图定义杨兰的存取权限。
CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号;

GRANT SELECT ON 部门工资 TO 杨兰;

9.把习题8中(1)~(7)中的每一种情况,撤销各户所授予的权力。

-- (1)
REVOKE SELECT ON 职工,部门 FROM 王明;

-- (2)
REVOKE INSERT,DELETE ON 职工,部门 FROM 李勇;

-- (3)
REVOKE SELECT ON 职工 WHEN USER()=NAME FROM ALL;
-- 这里假定用户将自己的名字作为ID,且系统的REOVKE语支持WHEN子句,系统也支持USER ()的使用。

-- (4)
REVOKE SELECT,UPDATE ON 职工 FROM 刘星;

-- (5)
REVOKE ALTER TABLE ON 职工,部门 FROM 张新;

-- (6)
REVOKE ALL PRIVILEGES ON 职工,部门 FROM 周平;

-- (7)
REVOKE SELECT ON 部门工资 FROM 杨兰;
DROP VIEW 部门工资;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

COCO56(徐可可)

建议微信红包:xucoco56

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值