safety
数据库安全性
挖坑
作业(
有以下两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT语句和REVOKE语句(加上视图机制)实现以下授权定义或存取控制功能:
首先建表:
1 | drop table 职工; |
创建用户:
1 | create user c##wangming identified by 114514; |
(1)用户王明对两个表有select权限。
1 | grant select on 职工 to c##wangming; |
(2)用户李勇对两个表有insert和delete权限。
1 | grant insert, delete on 职工 to c##liyong; |
(3)每个职工只对自己的记录有select权限。
1 | create view view_wangming as select * from 职工 where 姓名 = '王明'; |
(4)用户刘星对职工表有select权限,对工资字段有更新权限。
1 | grant select on 职工 to c##liuxing; |
(5)用户张新具有修改这两个表的结构的权限。
1 | grant alter on 职工 to c##zhangxin; |
(6)用户周平具有对两个表的所有权限,并具有给其他用户授权的权限。
1 | grant all privileges on 职工 to c##zhoupin with grant option; |
(7)用户杨兰具有从每个部门职工中select最高、最低、平均工资的权限,但不能查看每个人的工资:
1 | create view emp_sal as |