用GRANT和REVOKE语句完成以下授权定义或存取控制功能: (一)直接授予用户权限 (1)创建用户王明、李勇、刘星、周平; 创建后可以用select * from mysql.user where user = '用户名' 查询出每一个用户的信息。 (2)授权用户王明对Student表和Course表有SELECT权力; (3)授权用户刘星对Student表有SELECT权力,对Student表的sage字段有更新的权力; (4)授权用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力; 参考: grant all PRIVILEGES on s_t.student to 周平 with grant option; grant all PRIVILEGES on s_t.course to 周平 with grant option; (5)由周平授权用户李勇对Student表和Course表的所有权力; (6)由周平将授予李勇的权限收回。 对以上(2)--(8)小题的要求: 第一步:在root用户登录下,use mysql;show grants for 用户名;显示出用户权限的变化。 第二步:通过SQL语句执行的情况验证用户的权限情况。例如:授权用户刘星对Student表有SELECT权限,而没有授权对其Insert、update和Delete的权限,那么在刘星登录情况下,验证select * from student语句可以执行(截图),而Insert、update和Delete语句不可以执行(截图)。
时间: 2024-02-23 17:57:11 浏览: 120
1. 创建用户王明、李勇、刘星、周平:
```
CREATE USER '王明'@'localhost' IDENTIFIED BY 'password';
CREATE USER '李勇'@'localhost' IDENTIFIED BY 'password';
CREATE USER '刘星'@'localhost' IDENTIFIED BY 'password';
CREATE USER '周平'@'localhost' IDENTIFIED BY 'password';
```
2. 授权用户王明对Student表和Course表有SELECT权力:
```
GRANT SELECT ON database_name.Student TO '王明'@'localhost';
GRANT SELECT ON database_name.Course TO '王明'@'localhost';
```
3. 授权用户刘星对Student表有SELECT权力,对Student表的sage字段有更新的权力:
```
GRANT SELECT ON database_name.Student TO '刘星'@'localhost';
GRANT UPDATE (sage) ON database_name.Student TO '刘星'@'localhost';
```
4. 授权用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力:
```
GRANT ALL PRIVILEGES ON database_name.Student TO '周平'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON database_name.Course TO '周平'@'localhost' WITH GRANT OPTION;
```
5. 由周平授权用户李勇对Student表和Course表的所有权力:
```
GRANT ALL PRIVILEGES ON database_name.Student TO '李勇'@'localhost';
GRANT ALL PRIVILEGES ON database_name.Course TO '李勇'@'localhost';
```
6. 由周平将授予李勇的权限收回:
```
REVOKE ALL PRIVILEGES ON database_name.Student FROM '李勇'@'localhost';
REVOKE ALL PRIVILEGES ON database_name.Course FROM '李勇'@'localhost';
```
验证:
首先,在root用户登录下,执行以下语句:
```
USE mysql;
SHOW GRANTS FOR '王明'@'localhost';
SHOW GRANTS FOR '刘星'@'localhost';
SHOW GRANTS FOR '周平'@'localhost';
SHOW GRANTS FOR '李勇'@'localhost';
```
可以查看每个用户的权限情况。
然后,以刘星用户登录,执行以下语句:
```
SELECT * FROM database_name.Student; -- 可以执行
INSERT INTO database_name.Student (sno, sname, sage, ssex) VALUES ('001', '张三', 20, '男'); -- 不可以执行
UPDATE database_name.Student SET sage = 22 WHERE sno = '001'; -- 可以执行
DELETE FROM database_name.Student WHERE sno = '001'; -- 不可以执行
```
可以发现,刘星用户只有对Student表的SELECT和UPDATE权限,没有对INSERT和DELETE的权限。
阅读全文