【MySQL】DCL用户管理
目录
DCL含义
DCL
:数据控制语言(Data Control Language)
,用来定义访问权限和安全级别。
MySQL的用户定义
MySQL
的用户格式为:username@'白名单'
。
白名单表示允许登陆MySQL的ip地址。如果省略白名单,则等同于username@'%'
,即对ip
地址不做限制。
如下表示4个不同用户:
|
|
用户管理
1. 查看用户列表
用户信息存放在mysq【l.user
表中。通常情况下,查看host
, user
, authentication_string
即可。
|
|
2. 创建用户
|
|
如果省略IDENTIFIED BY password
部分,则默认该用户无密码。
3. 修改密码
|
|
4. 删除用户
|
|
5. 忘记密码
如果遇到忘记密码的情况,用如下两个参数重启MySQL
,可以跳过密码验证。
-
--skip-grant-tables
: 跳过授权表。 -
--skip-networking
: 跳过TCP/IP
连接,避免远程连接(不安全)。
具体处理过程为:
-
关闭
MySQL
。 -
重启
MySQL
。1
mysqld_safe --skip-grant-tables --skip-networking
或者:
1
service mysqld start --skip-grant-tales --skip-networking
-
手工加载授权表。
1
flush privileges;
-
修改密码。
-
正常模式重启
MySQL
。1
service mysqld restart
6. 说明
MySQL8.0
之前,可以使用grant
命令同时完成建立用户和授权的操作,但是8.0
之后不行。
权限管理
1. 查看可授予的权限
|
|
2. 授权
8.0
版本之前,使用如下语法:
|
|
8.0
版本之后,需要先建立用户才能授权。
|
|
权限ALL
表示除GRANT
之外的所有权限,如果想授予GRANT
权限,8.0
语法如下,8.0
之前版本同理。
|
|
“对象”是指库和表,如*.*
表示所有库中的所有表。也可以只授予某几个列的权限,用法是:
|
|
3. 回收权限
|
|
如:
|
|
4. 查看单个用户权限
查看自己:
|
|
查看他人:
|
|
5. 查看所有用户的权限
查看表相关的权限:
|
|
查看库相关的权限:
|
|
查看所有用户的权限:
|
|
查看列相关权限:
|
|
其他权限详情可以在mysql
库中查看。
总结
DCL
主要作用是对用户进行管理,保证数据库的数据安全。用户管理和权限管理属于DCL
的范畴,上述内容即为相关语法的说明。