MySQL DCL(数据控制语言)
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
1.管理用户
- 查询用户
select * from mysql.user;
select * from mysql.user\G; -- 格式化查询
其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一 个用户
Host:表示允许连接到 MySQL 服务器的主机名,可以是具体的IP地址,也可以是主机名或者 ‘%’ 表示所有主机。
User:表示用户的名称,具体的操作用户。
Password:存储用户的密码,MySQL 5.7 版本后密码使用密码哈希值的形式存储,而不是明文密码。
Select_priv、Insert_priv、Update_priv、Delete_priv、Create_priv、Drop_priv、Grant_priv等权限字段:表示用户对数据库的不同权限,如查询、插入、更新、删除、创建、删除等。
Super_priv:表示用户是否拥有超级权限,可以执行所有操作。
Create_user_priv:表示用户是否有权限创建新用户。
ssl_type、ssl_cipher、x509_issuer、x509_subject等与 SSL 相关的字段:用于配置用户的 SSL 连接信息。
max_questions、max_updates、max_connections等与用户资源限制相关的字段:用于限制用户的查询次数、更新次数、连接数等。
- 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
- 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
- 删除用户
DROP USER '用户名'@'主机名' ;
注意事项:在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户
一下是操作截图:
注意:在MySQL中%表示通配,允许全部网络都可以连接
2.权限控制
权限控制 | 说明 |
---|---|
ALL, ALL PRIVILEGES | 说明 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表结构 |
DROP | 删除表、视图、库 |
CREATE | 新建表、库 |
- 查询权限
SHOW GRANTS FOR '用户名'@'主机名' ;
- 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
- 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
注意事项:多个权限之间用逗号隔开;授权时,数据库名和表名可以使用 * 进行通配,代表全部
操作截图:
总结
- 以上是数据权限控制命令一些的基本命令,可以先将一些命令记下来,要用的时候再来查看