DCL英文全称是Data ControlLanguage(数据控制语言),用来管理数据库用户、用户的访问权限。
一、用户管理
用户信息与用户拥有的权限信息,都存储在系统数据库mysql的user数据表中。
定位用户需要两个信息:主机地址和用户名。
Host:主机地址——localhost表示只能在本地访问,不能远程访问。
User:用户名
1.查询用户
USE mysql;
SELECT * FROM user;
2.创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
注意:1.主机名用“%”表示任意主机均可访问 。
2.只创建没有修改权限时,用户只能访问看到mysql数据库。
3.修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码'
4.删除用户
DROP USER '用户名'@'主机名'
二、权限控制
1.查询权限
SHOW GRANTS FOR'用户名'@'主机名'
注意:USAGE表示只能连接登陆数据库,没有任何权限。
2.授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'
注意:1.所有的数据库/所有的表则用“ * ”代替,所有数据库的所有表用“ *.* ”。
2.多个权限之间使用“,”分隔。
3.撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名'
注意:如果撤销了指定库的所有表的所有权限,则之后该用户无法看到该数据库。