目录
- 一、概述
- 二、用户管理
- 2.1 查询用户
- 2.2 创建用户
- 2.3 修改用户密码
- 2.4 删除用户
- 三、权限控制
- 3.1 查询权限
- 3.2 赋予权限
- 3.3 撤销权限
一、概述
DCL数据控制语言,用来管理数据库用户、控制数据库的访问和权限。
简单来说就是可以让哪些用户可以访问哪些数据库。
二、用户管理
2.1 查询用户
USE mysql;
SELECT * FROM user;
2.2 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'lisi'@'%' IDENTIFIED BY '123456';
主机名:localhost表示只能在本地计算机上访问数据库;%表示可以在任意计算机上访问数据库。
2.3 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
2.4 删除用户
DROP USER '用户名'@'主机名';
三、权限控制
MySQL中定义了很多种权限,常见的权限如下:
权限 | 说明 |
---|---|
USAGE | 表示没有任何权限,只能能登陆数据库而已 |
ALL,ALL PRIVILLEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库、表、视图 |
CREATE | 创建数据库、表 |
3.1 查询权限
SHOW GRANTS FOR '用户名'@'主机名';
案例
SHOW GRANTS FOR 'lisi'@'%';
3.2 赋予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
案例
GRANT ALL ON mysql_demo.* TO 'lisi'@'%';
3.3 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
案例
REVOKE ALL ON mysql_demo.* FROM 'lisi'@'%';
注意:多个权限之间使用, 进行分隔;在授权时,数据库和表名都可以使用通配符*,代表所有。