系列链接:
- MySQL的安装及数据库的创建和维护
- 实验二:数据表的创建与修改管理
- 实验三:表数据的查询操作
- 实验四:数据插入、修改、删除操作
- 实验五:视图的创建与管理
- 实验六:MySQL的用户与权限(MySQL5.7版本)
- 实验七:自定义函数与存储过程
实验六:MySQL的用户与权限(MySQL5.7版本)
- 一、实验目的
- 二、验证性实验
-
- 1. MySQL中所有的用户信息都保存在mysql.user数据表中,查看user表,了解常用字段的含义
- 2. 查询user表中默认用户root 的Host和User值
- 3. 查询user表中root用户默认的plugin和authentication_string值
- 4. 创建用户test1,没有密码,没有任何限制。(%表示任何主机)
- 5. 创建用户test2,密码为222222,该用户只能从本地主机连接MySQL服务器
- 6. 查询存储在user表中test2用户的密码(密码是加密后的,看不懂)
- 7. 同时创建多个用户
- 8. 查看用户是否创建成功
- 9. 创建本地用户test5,密码555555,限制该用户同时连接服务器的最大数量为2
- 10. 查看user表中的max_user_connections字段,看值是否是2
- 11. 以用户test5连接MySQL服务器来验证此操作
- 12. 创建用户test6,并锁定该用户
- 13. 查看用户test6是否已被锁定
- 14. 解锁mysql.user表中被锁定的用户test6.(解锁后该用户在客户端就能连接MySQL服务器了)
- 15. 修改密码,将test2用户的密码设置为123456
- 16. 重命名用户,用Rename User语句,为用户test6重命名为xiaoming
- 17. 删除用户test6,并用select语句查看该用户是否删除
- 18. 权限管理,查看root用户、test1用户、test2用户被授权情况。
- 19. 权限管理,授予test1用户st.student表的select权限,以及对sno,sname字段的插入权限
- 20. 查看test1用户的权限授予情况,方法如下。
- 21. 退出当前root用户,以test1用户登录MySQL服务器(注意test1用户的密码为空),用use命令打开st数据库,输入以下语句,观察结果并截图。
- 21. 退出当前test1用户权限管理,回收test1用户对st.student表中sno,sname字段的插入权限,并查看权限是否被回收。
- 22. 刷新用户权限(从系统数据库mysql中的权限表中重新加载用户的权限)。
- 三、设计性实验任务如下:
-
- 1. 使用root用户创建exam1用户,初始密码设置为123456。
- 2. 让该用户对所有数据库拥有SELECT、CREATE、DROP权限,并且能将权限转授其它用户
- 3. 创建exam2用户,该用户没有初始密码。
- 4. 用exam2用户登录,将其密码修改为000000。
- 5. 用exam1用户登录,为exam2用户设置CREATE和DROP权限。
- 6. 用exam2用户登录,在st数据库下创建一个t1表,并将其删除,验证其拥有的CREATE和DROP权限。
- 7. 用root用户登录,收回exam1用户和exam2用户的所有权限。
- 8. 删除exam1用户和exam2用户。
- 四、观察与思考
一、实验目的
(1)了解用户与权限的作用
(2)掌握CREATE USER 创建用户
(3)掌握ALTER USER 修改用户
(4)掌握GRANT 授予用户权限
二、验证性实验
设计性实验任务如下:
1. MySQL中所有的用户信息都保存在mysql.user数据表中,查看user表,了解常用字段的含义
我才发现可以用sql语句代码块
select * from mysql.user;
2. 查询user表中默认用户root 的Host和User值
(这两个字段组合保存了客户端访问MySQL服务器的账号字段)select host,user from mysql.user;
3. 查询user表中root用户默认的plugin和authentication_string值
(这两个字段值保存了用户身份验证的信息)SELECT plugin, authentication_string
FROM mysql.user
where user='root';
创建用户的语句格式:
CREATE USER [IF NOT EXISTS]
账户名 [用户身份验证选项][, 账户名 [用户身份验证选项]]…
[WITH 资源控制选项][密码管理选项 | 账户锁定选项]
- CREATE USER可以一次创建多个用户,多个用户之间使用逗号分隔。
- 账户名是由“用户名@主机地址”组成。
- 用户名区分大小写,但是主机地址不区分大小写。
- 其余选项在创建用户时,若未设置则使用默认值。
4. 创建用户test1,没有密码,没有任何限制。(%表示任何主机)
create user 'test1';
5. 创建用户test2,密码为222222,该用户只能从本地主机连接MySQL服务器
create user 'test2'@'localhost' identified by'222222';
6. 查询存储在user表中test2用户的密码(密码是加密后的,看不懂)
select plugin,authentication_string from mysql.user where user='test2';
7. 同时创建多个用户
create user 'test3'@localhost IDENTIFIED