1.今有两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号) 部门(部门号,名称,经理名,地址,电话号) 请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能: 1)用户王明对两个表有SELECT 权力。 2)用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。 3)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。 4)用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。 5)将对职工表的查询、插入、修改和删除的权限授予角色职工。 6)收回用户王明对职工表的SELECT权限。 7)收回用户刘星对职工表的工资修改的权限。 8)收回用户周平对部门表的增删查改权限。 9)收回职工角色对职工表的增删查改权限。
时间: 2023-06-10 15:07:24 浏览: 330
1) 授权用户王明对两个表有SELECT权限
```
GRANT SELECT ON 职工 TO 王明;
GRANT SELECT ON 部门 TO 王明;
```
2) 授权用户刘星对职工表有SELECT权限,对工资字段具有更新权限
```
GRANT SELECT ON 职工 TO 刘星;
GRANT UPDATE(工资) ON 职工 TO 刘星;
```
3) 授权用户周平具有对两个表所有权限,并具有给其他用户授权的权力
```
GRANT ALL ON 职工 TO 周平 WITH GRANT OPTION;
GRANT ALL ON 部门 TO 周平 WITH GRANT OPTION;
```
4) 授权用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资
```
CREATE VIEW temp_view AS SELECT 部门号, MAX(工资) AS 最高工资, MIN(工资) AS 最低工资, AVG(工资) AS 平均工资 FROM 职工 GROUP BY 部门号;
GRANT SELECT ON temp_view TO 杨兰;
```
5) 将对职工表的查询、插入、修改和删除的权限授予角色职工
```
GRANT SELECT, INSERT, UPDATE, DELETE ON 职工 TO 职工;
```
6) 收回用户王明对职工表的SELECT权限
```
REVOKE SELECT ON 职工 FROM 王明;
```
7) 收回用户刘星对职工表的工资修改的权限
```
REVOKE UPDATE(工资) ON 职工 FROM 刘星;
```
8) 收回用户周平对部门表的增删查改权限
```
REVOKE ALL ON 部门 FROM 周平;
```
9) 收回职工角色对职工表的增删查改权限
```
REVOKE SELECT, INSERT, UPDATE, DELETE ON 职工 FROM 职工;
```
阅读全文