1. 概述
-
DCL是数据库控制语言,用于执行权限的授予和收回操作
-
主要关键字:
GRANT:授权,用于给用户或角色授予权限
REVOKE:用于收回用户或角色已有的权限
CREATE USER:创建用户
2. 用户管理
2.1 添加用户:
语法:CREATE USER ‘用户名’@‘主机名’
identified by ‘密码’;
示例:
CREATE USER
'AHUA'@'localhost'
identified by '123';
-- host:主机,localhost:本地主机
-- 通配符%表示可以在任意主机使用该用户登录数据库
2.2 删除用户:
语法:DROP USER ‘用户名’@‘主机名’
示例:
DROP USER 'AHUA'@'localhost'
2.3 修改用户密码:
-- 语法一:
UPDATE USER SET PASSWORD =
PASSWORD('新密码')
where USER = '用户名';
UPDATE USER SET PASSWORD =
PASSWORD('456')
where USER = 'AHUA';
-- 方式二
SET PASSWORD FOR '用户名'@'主机名' =
PASSWORD('新密码')
SET PASSWORD FOR 'AHUA'@'localhost' =
PASSWORD('456')
2.4 查询用户:
用户信息储存在mysql数据库USER表中
因此需要先切换到mysql数据库,再查询
示例:
USE mysql;
SELECT * FROM USER;
3. 权限管理
3.1 查询权限:
-- 语法:
SHOW GRANTS FOR '用户名'@'主机名';
SHOW GRANTS FOR 'AHUA'@'localhost';
3.2 授予权限:
-- 语法:
GRANT 权限列表
on 数据库名.表名
to '用户名'@'主机名';
-- 在任意数据库授予所有权限:
GRANT ALL
on *.*
to 'AHUA'@'localhost';
-- 在任意数据库授予查询与删除权限:
GRANT SELECT,DROP
on *.*
to 'AHUA'@'localhost';
3.3 取消权限:
-- 语法:
revoke 权限列表
on 数据库名.表名
FROM '用户名'@'主机名';