.今有以下两个关系模式: \\而 职工(职工号,姓名,年龄,职务,工资,部门号) 649 部门(部门号,名称,经理名,地址,电话号) 请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能: (1)用户王明对两个表有SELECT权限。 (2)用户李勇对两个表有INSERT 和DELETE权限。 (3)每个职工只对自己的记录有SELECT权限。 (4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限。 (5)用户张新具有修改这两个表的结构的权限。 (6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限。 (7)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,她不能查看每个人的工资。 实 验
时间: 2024-02-23 13:55:58 浏览: 129
为了完成以上授权定义或存取控制功能,需要使用GRANT和REVOKE语句,并结合视图机制进行授权。
1. GRANT SELECT ON 职工, 部门 TO 王明;
REVOKE SELECT ON 职工, 部门 FROM 王明;
2. GRANT INSERT, DELETE ON 职工, 部门 TO 李勇;
REVOKE INSERT, DELETE ON 职工, 部门 FROM 李勇;
3. CREATE VIEW 职工视图 AS SELECT * FROM 职工 WHERE 职工号 = CURRENT_USER;
GRANT SELECT ON 职工视图 TO PUBLIC;
REVOKE SELECT ON 职工视图 FROM PUBLIC;
4. GRANT SELECT, UPDATE (工资) ON 职工 TO 刘星;
REVOKE SELECT, UPDATE (工资) ON 职工 FROM 刘星;
5. GRANT ALTER ON 职工, 部门 TO 张新;
REVOKE ALTER ON 职工, 部门 FROM 张新;
6. GRANT SELECT, INSERT, UPDATE, DELETE ON 职工, 部门 TO 周平 WITH GRANT OPTION;
REVOKE SELECT, INSERT, UPDATE, DELETE ON 职工, 部门 FROM 周平;
7. CREATE VIEW 部门工资视图 AS SELECT 部门号, MAX(工资), MIN(工资), AVG(工资) FROM 职工 GROUP BY 部门号;
GRANT SELECT ON 部门工资视图 TO 杨兰;
REVOKE SELECT ON 部门工资视图 FROM 杨兰;
以上是实现授权定义或存取控制功能的SQL语句,其中使用了GRANT和REVOKE语句进行授权和撤销授权,使用了视图机制限制了用户的访问权限。
阅读全文