Mysql学习笔记之SQL-4

这篇文章开始介绍SQL语句的最后一个部分,DCL(Data Control Language)数据库控制语言。

1.简介

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

问权限。

这一部分比较简单,主要为数据库用户的管理和权限配置。通过DCL语句可以创建数据库用户,并为每个用户设置数据库权限。

2.用户管理

2.1 查询用户

mysql数据库的用户表保存在mysql库中的user表中,可以通过sql语句或者使用navicat查看。

sql 复制代码
SELECT * from mysql.`user`;

表中从第三列开始每一列代表一个权限,Y为拥有此项权限,N为没有此项权限。
注意

第一列的Host为访问权限, 如果为localhost, 仅代表只能够在当前本机访问,是不可以

远程访问的。User代表的是数据库的用户名。

2.2 创建用户

语法:

sql 复制代码
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

案例

创建名为test的本地用户

sql 复制代码
CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';

可以看到创建用户就在user表中添加了一条数据,并且默认是没有任何权限的。

2.3删除用户

sql 复制代码
DROP USER '用户名'@'主机名' ;

案例

删除test的本地用户

sql 复制代码
DROP USER 'test'@'localhost' ;

2.4修改用户密码

sql 复制代码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;

案例

修改test的本地用户的密码为654321

sql 复制代码
ALTER USER 'test'@'localhost'  IDENTIFIED WITH mysql_native_password BY '654321' ;

3.权限管理

Mysql中的权限主要分为对数据的操作权限和对表的操作权限。

数据操作权限分为:

  • 查询权限
  • 修改权限
  • 插入权限
  • 删除权限

表操作权限分为:

  • 修改表
  • 删除数据库/表/视图
  • 创建表/数据库
    具体如下表所示:
权限 说明
ALL 所有权限
SELECT 查询数据权限
INSERT 插入数据权限
UPDATE 更新数据权限
DELETE 删除数据权限
ALTER 修改表
DROP 删除数据库/表/视图
CREATE 创建数据库/表

3.1 授予权限

上面提到,创建用户后,默认是没有任何权限的,因此需要给用户赋予对应的权限。

语法:

sql 复制代码
 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

案例

给test授予test库所有权限

sql 复制代码
 GRANT ALL ON test.* TO 'test'@'localhost';

给test授予所有库的查询,删除,插入权限

sql 复制代码
 GRANT SELECT,INSERT,DELETE ON *.* TO 'test'@'localhost';
 -- 第一个*表示所有数据库,第二个*表示数据库中的所有表

3.2 撤销权限

语法:

sql 复制代码
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

案例

撤销test用户test库的所有权限

sql 复制代码
 REVOKE ALL ON test.* FROM 'test'@'localhost';

撤销test所有库的查询,删除,插入权限

sql 复制代码
 REVOKE SELECT,INSERT,DELETE ON *.* FROM 'test'@'localhost';
 -- 第一个*表示所有数据库,第二个*表示数据库中的所有表

3.3 查询权限

语法:

sql 复制代码
SHOW GRANTS FOR '用户名'@'主机名' ;

案例

查询本地用户test的权限

sql 复制代码
SHOW GRANTS FOR 'test'@'localhost';
相关推荐
小此方5 小时前
Re:Mysql数据库基础篇(八):详细讲解复合查询、多表查询、自连接、多行、多列子查询与合并查询
数据库·mysql
smile_life_6 小时前
MySQL 设置 防止账户被暴力破解
数据库·mysql
滕州市燕猫虎计算机科技工作室个体工商户7 小时前
MySQL、MVCC、多版本并发控制
数据库·mysql·mvcc·数据库事务
Decay__8 小时前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构
太理摆烂哥9 小时前
MySQL用户管理
数据库·mysql
梦影_11 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
John_Hui12 小时前
Windows 10 安装版本:mysql-8.1.0-winx64.zip
数据库·windows·mysql
莫晓燚12 小时前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
灵晔君14 小时前
【MySQL】数据库基础
数据库·mysql·adb
香蕉大香蕉(06敬畏市场)15 小时前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习