头歌数据库课程实验(角色管理)
第1关:创建角色
任务描述
本关任务:创建角色 role1@localhost。
相关知识
为了完成本关任务,你需要掌握MySQL的角色管理。
角色信息存放在数据库 mysql 的 user 表中。
user 表中字段:
Host:可以登陆数据库的主机地址;
User:用户登陆名;
authentication_string :加过密的登陆密码;
_priv 结尾的字段:表明用户的权限。
增加角色
增加角色方式一语法:
create role 角色名@主机名 //角色名区分大小写,主机名连接来自的主机;
[ , 角色名@主机名[ ,... ] //可以同时创建多个数据库角色,中间用逗号分隔。
增加角色示例:
使用 create role 语句增加一个角色R2,只允许在本地主机登陆。
create role R2@localhost;
要求
根据提示,在右侧编辑器补充代码。创建角色role1,只允许在本地主机登录。
测试说明
开始你的任务吧,祝你成功!
use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/create role role1@localhost; /**********End**********/
第2关:给角色授权
任务描述
本关任务:系统用户 root 授权 role1@localhost 角色对teachingdb数据库中student表的select 权限。
相关知识
为了完成本关任务,你需要掌握 MySQL 的权限管理。使用grant语句为角色授权。
grant 语句的基本语法格式
grant 语句的基本语法格式:
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] priv_level
TO user_or_role [, user_or_role] ...;
priv_type:权限类型;
column_list:字段列表;
object_type:目标对象类型,有三种:TABLE,FUNCTION,PROCEDURE;
privi_level:权限级别;
user_or_role:用户名或角色名。
示例:使用 grant 语句为角色role1授权,该角色对所有的数据有查询、插入的权限。
grant select,insert on *.* to role1@localhost;
查看权限
语法:
show grants for rolename@hostname
例子: 查用角色 role1 的权限信息
show grants for role1@localhost;
要求
根据提示,在右侧编辑器补充代码,系统用户 root 授权 role1@localhost角色对teachingdb数据库中student表的select权限。
测试说明
编写代码后,点击测评即可。
开始你的任务吧,祝你成功!
use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/GRANT SELECT ON teachingdb.student TO 'role1'@'localhost';/**********End**********/
第3关:指定用户角色
任务描述
本关任务:系统用户root指定user1@localhost用户role1@localhost角色。
相关知识
为了完成本关任务,你需要掌握 MySQL 的角色管理。
将一个角色授予其他的角色或用户使用grant命令。
grant 语句的基本语法格式
grant 语句的基本语法格式:
GRANT role [, role] ...
TO user_or_role [, user_or_role] ...
[WITH ADMIN OPTION];
示例:使用 grant 语句为用户U1指定角色role1。
grant role1@localhost to U1@localhost;
查看权限
语法:
show grants for username@hostname
例子: 查用用户U1的权限信息
show grants for U1@localhost;
要求
根据提示,在右侧编辑器补充代码,系统用户 root指定user1@localhost用户role1@localhost角色。
测试说明
编写代码后,点击测评即可。
开始你的任务吧,祝你成功!
use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/GRANT 'role1'@'localhost' TO 'user1'@'localhost';/**********End**********/
第4关:回收用户角色
任务描述
本关任务:回收用户user1@localhost的role1@localhost角色。
相关知识
回收用户角色使用revoke语句。
REVOKE rolename FROM username;
要求
根据提示,在右侧编辑器补充代码,回收用户user1@localhost的role1@localhost角色。
开始你的任务吧,祝你成功!
use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/REVOKE 'role1'@'localhost' FROM 'user1'@'localhost';/**********End**********/
第5关:删除角色
任务描述
本关任务:删除角色 role1@localhost。
相关知识
删除角色语法:
drop role 角色 [ , 角色] ....
示例:使用 drop role 语句删除可以在任意主机上登陆的角色leader。
drop role 'leader'@'%';
要求
根据提示,在右侧编辑器补充代码。删除角色role1@localhost。
测试说明
开始你的任务吧,祝你成功!
use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/drop role 'role1'@localhost;/**********End**********/