系列六、DCL

一、DCL

1.1、概述

        DCL的英文全称是:Data Control Language,中文意思为: 数据控制语言,是用来管理数据库的用户以及控制用户的权限的。

1.2、管理用户

1.2.1、查询用户

select * from mysql.user;

说明:

        其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。

1.2.2、创建用户

语法:CREATE USER ''@'' IDENTIFIED BY '';

案例:CREATE USER 'scott'@'192.168.173.232' IDENTIFIED BY '123456';

注意事项:使用上述语句创建的用户,连最基本的连接权限都没有,需要为其分配权限才能使用!

系列六、DCL_第1张图片

1.2.3、修改密码

语法:ALTER USER ''@'' IDENTIFIED WITH mysql_native_password BY '<新密码>' ;

案例:ALTER USER 'scott'@'192.168.173.232' IDENTIFIED WITH mysql_native_password BY 'tiger123456' ;

1.2.4、删除用户

语法:drop user ''@'';

案例:drop user 'scott'@'192.168.173.232';

1.3、权限控制

1.3.1、MySQL中的权限概览

系列六、DCL_第2张图片

1.3.2、查询用户权限

语法:SHOW GRANTS FOR ''@'IP' ;

案例:在演示用户的权限之前,我们先来创建一个用户,使用上面的sql脚本创建一个scott用户,看其有什么权限

(1)创建用户:CREATE USER 'scott'@'192.168.173.232' IDENTIFIED BY '123456';

(2)查询用户权限:show GRANTS for 'scott'@'%';

系列六、DCL_第3张图片

1.3.3、授予用户权限

语法:GRANT 权限列表 ON 数据库名.表名 TO ''@'';

案例:

(1)授予select权限:grant select on vhr.employee to 'scott'@'%';

(2)查询用户权限

系列六、DCL_第4张图片

(3)授予all的权限

系列六、DCL_第5张图片

(4)授予权限后再次连接可以连接成功

系列六、DCL_第6张图片

1.3.4、回收用户权限

语法:REVOKE 权限列表 ON 数据库名.表名 FROM ''@'';

案例:回收scott用户的update、delete权限:revoke DELETE,UPDATE on vhr.employee from 'scott'@'%';

系列六、DCL_第7张图片

1.3.5、注意事项

        授予用户权限 or 回收用户权限时,如果涉及到的权限有多个,多个权限之间使用英文逗号进行分割;例如:revoke DELETE,UPDATE on vhr.employee from 'scott'@'%';

你可能感兴趣的:(MySQL系列,MySQL)