摘要:本文学习了如何使用DCL语句管理用户权限。
环境
Windows 10 企业版 LTSC 21H2
MySQL 5.7.40
1 简介
1.1 用户
用户指的是操作和使用数据库的人,使用数据库需要用户先通过用户名和密码进行连接,然后才能进行操作,不同的用户可以设置不同的权限。
在MySQL数据库中,所有的用户信息都保存在user表中。
1.2 权限
权限用来控制用户对数据库的操作,可以限制用户只能访问特定的数据,或者只能执行特定的操作。
2 操作
2.1 查看用户
查看user表的结构:
1 | mysql> desc user; |
在MySQL数据库中,对用户的管理是通过对应的Host和User共同组成的主键来区分的。
其中,User代表用户的用户名,Host代表允许访问的客户端地址(IP地址或者是主机地址),使用*
表示所有的客户端都可以访问。
查询user表数据:
1 | mysql> select host, user, password from user; |
在安装MySQL数据库的时候,如果没有创建匿名用户,那么在user表里只有一个root用户。
在创建新用户或更改密码后需要使用flush privileges;
命令刷新权限相关表,否则会出现拒绝访问。也可以重新启动数据库使新设置生效。
2.2 创建用户
语法:
1 | create user 用户名@主机地址 identified by 明文密码; |
说明:
- 省略
@主机地址
表示任何IP地址都可以使用这个用户。 - 省略
identified by 明文密码
表示不需要密码就可以登录。
示例:
1 | mysql> create user 'test' identified by '123456'; |
2.3 删除用户
语法:
1 | drop user 用户名@主机地址; |
示例:
1 | mysql> drop user 'test'; |
2.4 修改密码
语法:
1 | alter user 用户名@主机地址 identified by 明文密码; |
示例:
1 | mysql> alter user 'test' identified by '123456'; |
2.5 用户授权
语法:
1 | grant 权限列表 on 库名.表名 to 用户名@主机地址 indentified by 明文密码 [with grant option] [with admin option] |
说明:
- 使用
with grant option
授权,在取消时会撤销连带的权限。 - 使用
with admin option
授权,在取消时会保留连带的权限。
示例:
1 | grant all on *.* to 'test' identified by '123456' with grant option; |
2.6 取消授权
语法:
1 | revoke 权限列表 on 库名.表名 from 用户名@主机地址 |
示例:
1 | mysql> revoke all on *.* from 'test'; |
条