- 返回目录 : MySQL 学习笔记
- 上一章 : 1.3 数据库初识 DQL
- 下一章 : 2.1 MySQL 函数
DCL-介绍
DCL 英文全称是 Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
管理用户
- 查询用户表
USE mysql; SELECT * FROM user; - 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; - 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '密码'; - 删除用户
DROP USER '用户名'@'主机名'; - 注意 :
- 主机名可使用
%通配,任意主机,localhost代表仅MySQL服务主机可访问. - 以上用户相关的操作,对于开发人员来讲操作的比较少,主要是DBA(Database Administrator 数据库管理员) 使用.
- 主机名可使用
权限控制
-
权限说明
MySQL中定义了很多种权限,以下几种是比较常用的
权限 说明 ALL , ALL PRIVILEGES 所有权限 SELECT 查询数据 INSTER 插入数据 UPDATE 修改数据 DELETE 删除数据 ALTER 修改表 DROP 删除数据库/表/视图 CREATE 创建数据库/表 其他权限描述以及含义,可以参考官方文档8.0
-
查询权限
SHOW GRANTS FOR '用户名'@'主机名';
- 授予权限
GRANT
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
- 撤销权限
REVOKE
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
- 注意
- 在赋予权限时
*代表通配符,可用在数据库名or表名上.代表所有 - 多个权限之间使用逗号分割.
- 在赋予权限时
- 返回目录 : MySQL 学习笔记
- 上一章 : 1.3 数据库初识 DQL
- 下一章 : 2.1 MySQL 函数
练习
管理用户
题1
- 问 : 创建用户
tempuser,只能在当前主机localhost访问,密码123456 - 答
CREATE USER 'tempuser'@'localhost' IDENTIFIED BY '123456';
-- 查看MySql用户表
SELECT * FROM user;
题2
- 问 : 创建用户
admin,可以在任意主机访问数据库,密码123456 - 答
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
-- 查看MySql用户表
SELECT * FROM user;
题3
- 问 : 修改
admin的访问密码为1234 - 答
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
题4
- 问 : 删除
admin@%用户. - 答
DROP USER 'admin@%';
-- 查看MySql用户表
SELECT * FROM user;
权限控制
题1
- 问 : 查询用户
tempuser@localhost的权限 - 答
-- 查询用户`tempuser`权限
SHOW GRANTS FOR 'tempuser'@'localhost';
题2
- 问 : 给用户
tempuser@localhost授予查询和插入权限,仅限于database-exercises和database下面的表emp. - 答
GRANT SELECT,INSTER ON exercises.emp TO 'tempuser'@'localhost';
-- 查询用户`tempuser`权限
SHOW GRANTS FOR 'tempuser'@'localhost';
题3
- 问 : 给用户
tempuser@localhost授予全部权限(包含增删改查等...),全部database,以及全部database下的全部表. - 答
GRANT ALL ON *.* TO 'tempuser'@'localhost';
-- 查询用户`tempuser`权限
SHOW GRANTS FOR 'tempuser'@'localhost';
题4
- 问 : 给用户
tempuser@localhost取消全部权限,并删除用户. - 答
REVOKE ALL ON *.* FROM 'tempuser'@'localhost';
-- 查询用户`tempuser`权限
SHOW GRANTS FOR 'tempuser'@'localhost';
-- 删除用户'tempuser'@'localhost'
DROP USER 'tempuser'@'localhost';
-- 查看MySql用户表
SELECT * FROM user;
- 返回目录 : MySQL 学习笔记
- 上一章 : 1.3 数据库初识 DQL
- 下一章 : 2.1 MySQL 函数