📚引言
在上一节中,我们讨论了DQL的使用方法,本节我们继续开始DCL的学习。
首先回归一下DCL的基于定义:
DCL(Data Conrtol Language) :数据控制语言,用来创建数据库用户,控制数据库的访问权限
在本节中我们主要讨论DCL的用法以及基本语法,话不多说,我们开始吧。
📖DCL语句
📃DCL-管理用户
🔖查询用户
当我们想要查询所有的用户时,可以使用下面的操作:
USE mysql;
SELECT * FROM user;
在这里我们利用可视化软件打开数据库表查看用户信息,如下:
可以看到,mysql中内置了四个用户,而我们最常用的是最后一个root用户。
🔖创建用户
当我们想要创建一个新的用户时,可以使用下面的操作:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
假设我们要创建,名为ITCAST的用户,密码为123456,则可以使用下面的操作:
当我们重新通过可视化界面查看的时候,可以看到已经多出了一个新的用户ITCAST:
但当我们使用该用户访问数据库的时候,我们发现其并不能查询到其他数据库,因为其并没有任何权限。
另外,如果我们想要该用户可以在其它计算机上能够访问数据库,那么可以在SQL语句中主机名的部分替换成%。
🔖修改用户密码
当我们想要修改一个用户的密码时,可以使用下面的操作:
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
在本节中不再演示该操作。
🔖删除用户
当我们想要删除一个用户时,可以使用下面的操作:
DROP USER '用户名'@'主机名';
例如,我们希望把我们刚才创建的用户删除,可以使用如下的操作:
此时我们查看刚才的用户表格,可以发现创建的用户已经被我们删除。
📃DCL-权限控制
🔖权限的种类
MYSQL中定义了很多种权限,但是常用的就以下几种:
权限 | 说明 |
---|---|
ALL, ALL PRIVILEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库/表/视图 |
CREATE | 创建数据库/表 |
🔖查询权限
当我们想要查询一个用户的权限时,可以使用下面的语句:
SHOW GRANTS FOR '用户名'@'主机名';
为了演示该语法,我们新创建了用户shengyu,然后执行上述语句:
可以看到我们刚刚创建的用户所展示的内容表示,只允许登录进入数据库。
🔖授予权限
当我们想要查询一个用户的权限时,可以使用下面的语句:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
例如我们想要为上述新建的用户授予全部的权限,可以执行上面的语句如下:
在这里,我们重新查询该用户的权限时,可以发现用户的权限多了一个bookproject的所有表。
🔖撤销权限
当我们想要查询一个用户的权限时,可以使用下面的语句:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
例如,我们将上述的用户的权限重新撤销,可以使用下面的操作:
在这里,我们重新查询该用户的权限时,刚才所授予的表的权限已经被撤销了。
注意:
- 多个权限之间,使用逗号分隔。
- 授权时,数据库名和表名可以使用通配符*进行通配,表示所有。
📕总结
本次列举了SQL中DCL的相关语句,在实际学习的过程中还需要多学习以及使用才能熟练掌握。
余下的SQL内容我也将持续更新,如果感兴趣的话不妨订阅本专栏或者点个关注,我们下次再见。