上篇文章学习了MySQL基础——DQL语句,这篇文章学习MySQL基础——DCL语句。
DCL语句
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据的访问权限。
管理用户
查询
查询用户代码如下:
USE mysql;
SELECT * FROM user;
在系统中,MySQL用户信息默认存储在mysql数据库中的user表中,所以只需要查询mysql数据库中的user表即可。
如下图所示:

这样看不够直观,这里我们在navicat中查看,如下图所示:

创建
创建用户语法格式如下:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
注意:当我们希望任意主机都能访问MySQL,只需要把主机名的值写为%即可。
示例代码如下:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY '123456'; #创建名为myuser的用户
如下图所示:


注意:这样创建的用户只有登录MySQL的权限,没有操作数据库的权限。
修改
修改用户密码语法格式如下:
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
示例代码如下:
ALTER USER 'myuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '123' #修改用户密码
如下图所示:

删除
删除用户语法格式如下:
DROP USER '用户名'@'主机名';
示例代码如下:
DROP USER 'myuser'@'localhost'; #删除用户

权限控制
在MySQL中常用的权限有以下几种:
权限 | 说明 |
---|---|
ALL,ALL PRIVILEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库/表/视图 |
CREATE | 创建数据库/表 |
注意:
-
多个权限之间,使用逗号分隔; -
授权时,数据库名和表名可以使用*进行通配,代表所有。
查询权限
查询权限语法格式如下:
SHOW GRANTS FOR '用户名'@'主机名';
示例代码如下:
SHOW GRANTS FOR 'myuser'@'localhost'; #查看用户权限
如下图所示:

这里myuser用户只有登录MySQL权限。
授予权限
授予权限语法格式如下:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
示例代码如下:
GRANT ALL ON mytest.students TO 'myuser'@'localhost'; #给用户myuser授予mytest数据库中的students数据表全部权限
SHOW GRANTS FOR 'myuser'@'localhost'; #查询用户权限
如下图所示:

撤销权限
撤销权限语法格式如下:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
示例代码如下:
REVOKE ALL ON mytest.students FROM 'myuser'@'localhost'; #用户myuser撤销mytest数据库中的students数据表全部权限
SHOW GRANTS FOR 'myuser'@'localhost'; #查询用户权限
如下图所示:

好了,MySQL基础——DCL语句就学到这里了,下篇文章学习MySQL基础——函数。
– END –
原文始发于微信公众号(白巧克力LIN):MySQL基础——DCL语句
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/222734.html