DCL(数据控制语言,用来创建数据库用户、控制数据库的控制权限)
管理用户
查询用户:
USE mysql;
SELECT * FROM user;
创建用户:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
修改用户密码:
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
删除用户:
DROP USER '用户名'@'主机名';
案例:
-- 创建用户test,只能在当前主机localhost访问,密码123456
create user 'test'@'localhost' identified by '123456';
-- 创建用户test,能在任意主机访问该数据库,密码123456
create user 'test'@'%' identified by '123456';
create user 'test' identified by '123456';
-- 修改用户test的访问密码为1234
alter user 'test'@'localhost' identified with mysql_native_password by '1234';
-- 删除test@localhost用户
drop user 'test'@'localhost';
在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户
主机名可以使用 % 通配
这类SQL开发人员操作的比较少,主要是DBA(Database Administrator数据库管理员)使用。
权限控制
常用权限:
权限说明
ALL, ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表
更多权限请看官方文档
查询权限:
SHOW GRANTS FOR '用户名'@'主机名';
授予权限:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销权限:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
案例:
--查询'heima'@'%'用户的权限
show grants for 'heima'@'%';
--授予'heima'@'%'用户的itcast数据表所有表的所有表的操作权限
grant all on itcast.* to 'heima'@'%';
撤销'heima'@'%'用户的itcast数据库的所有权限
revoke all on itcast.* from 'heima'@'%';
多个权限用逗号分隔
授权时,数据库名和表名可以用 * 进行通配,代表所有