系列六、DCL

发布时间:2023年12月17日

一、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 '<username>'@'<IP>' IDENTIFIED BY '<password>';

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

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

1.2.3、修改密码

语法:ALTER USER '<username>'@'<IP>' 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 '<username>'@'<IP>';

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

1.3、权限控制

1.3.1、MySQL中的权限概览

1.3.2、查询用户权限

语法:SHOW GRANTS FOR?'<username>'@'IP'?;

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

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

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

1.3.3、授予用户权限

语法:GRANT?权限列表?ON?数据库名.表名?TO?'<username>'@'<IP>';

案例:

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

(2)查询用户权限

(3)授予all的权限

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

1.3.4、回收用户权限

语法:REVOKE?权限列表?ON?数据库名.表名?FROM?'<username>'@'<IP>';

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

1.3.5、注意事项

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

文章来源:https://blog.csdn.net/HelloWorld20161112/article/details/135019799
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。