SQL-DCL

DCL-介绍

DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

image-20240316202949862

DCL-管理用户

1.查询用户

1
2
USE mysql;
SELECT * FROM user;

2.创建用户

1
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

3.修改用户密码

1
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

4.删除用户

1
DROP USER '用户名'@'主机名';
案例练习

1.创建用户 itcast,只能够在当前主机localhost访问,密码123456

1
create user 'itcast'@'localhost' identified by '123456'

2.创建用户snail,可以在任意主机访问该数据库,密码123456

1
create user 'snail'@'%' identified by '123456'

3.修改用户snail的访问密码为1234

1
alter urser 'snail'@'%'identified with mysql_native_password by '1234';

4.删除itcast@localhost用户

1
drop user 'itcast'@'localhost'

说明

  • 主机名可以用’%‘通配。
  • 这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用。
DCL-权限控制

MySQL中定义了很多种权限,但是常用的就以下几种:

权限 说明
ALL,ALL PRIVILEGES 所有权限
SELERT 查询权限
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库/表/视图
CREATE 创建数据库/表

1.查询权限

1
SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

1
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3.撤销权限

1
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意

  • 多个权限之间,使用逗号分隔。
  • 授权时,数据库名和表名可以使用*进行通配,代表所有。