前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL DCL语句

MySQL DCL语句

作者头像
星哥玩云
发布于 2022-09-15 11:08:53
发布于 2022-09-15 11:08:53
2.2K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。由 GRANT 和 REVOKE 两个指令组成。

一、DCL概述

1.1、什么是DCL

DCL 语句主要是DBA 用来管理系统中的对象权限时所使用,一般的开发人员很少使用。

DCL中主要包括创建用户、给用户授权、对用户撤销授权、查询用户授权和删除用户等操作。

1.2、为什么学习DCL

在一个企业里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。

二、用户管理

mysql数据库的用户都在mysql数据库下面的user表中

2.1、查看用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:
select * from user;

案例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> select * from user;

mysql> select user,host,plugin,authentication_string from user;

2.2、创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:
create user '用户名'@'主机名' identified by '密码';

注意:

用户名: 新用户的名字

主机名: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

密码: 密码可以为空,如果为空则该用户可以不需要密码登陆服务器

案例:

创建一个用户root1,只能在本机登录(localhost)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create user 'root1'@'localhost' identified by '123';
Query OK, 0 rows affected (0.02)

mysql> select user,host,plugin,authentication_string from user;

创建一个用户root2,可以在任何主机(%)登录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create user 'root2'@'%' identified by '123';
Query OK, 0 rows affected (0.01)

mysql> select user,host,plugin,authentication_string from user;

注意:

指定加密方式,增加用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create user 'root3'@'%' identified with mysql_native_password by '123';
Query OK, 0 rows affected (0.01)

mysql> select user,host,plugin,authentication_string from user;

2.3、删除用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop user '用户名'@'主机名';

案例:

删除root1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> drop user root1@localhost;
Query OK, 0 rows affected (0.01)

mysql> select user,host,plugin,authentication_string from user;

三、密码管理

3.1、修改用户密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:
alter user '用户名'@'主机名' identified by '密码';

案例:

修改root2的密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> alter user 'root2'@'%' identified by '456';
Query OK, 0 rows affected (0.02)

注意:

如果想用该root2用户连接上mysql服务端的话,我们的密码修改时应该是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> alter user 'root2'@'%' identified with mysql_native_password by '456';
Query OK, 0 rows affected (0.02)

3.2、设置管理员(root)密码

清空密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use mysql; 

update user set authentication_string='' where user='root';#设置提root用户的密码为‘’,本地,远程 

设置密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter user 'root'@'%' identified by 'Root12345';
alter user 'root'@'localhost' identified by 'Root12345';

四、权限管理

4.1、查看用户权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:
show grants for '用户名'@'主机名';

案例:

查看’root2’,'root3’及’root’权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> show grants for 'root2'@'%';
+-----------------------------------+
| Grants for root2@%                |
+-----------------------------------+
| GRANT USAGE ON *.* TO `root2`@`%` |
+-----------------------------------+
1 行于数据集 (0.01)

mysql> show grants for 'root3'@'%';
+-----------------------------------+
| Grants for root3@%                |
+-----------------------------------+
| GRANT USAGE ON *.* TO `root3`@`%` |
+-----------------------------------+
1 行于数据集 (0.02)

mysql> show grants for 'root'@'%'

4.2、授权

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:
grant 权限 1, 权限 2... on 数据库名.表名 to '用户名'@'主机名';

注意:

**grant… on …to :**授权关键字

权限: 如select\insert\update\delete等,如果是所有用all

数据库名.表名: 该用户可以操作哪个数据库的哪些表。如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

’用户名’@‘主机名’ : 注意单引号不能省略

案例:

给’root2’分配,增加、删除、修改、查询表的权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> grant insert,delete,update,select on zutuanxue.* to 'root2'@'%';

给’root3’分配所有权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> grant all on *.* to 'root3'@'%';

4.3、撤销授权

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:
revoke 权限 1, 权限 2... on 数据库名.表名 from '用户名'@'主机名';

注意:

revoke… on …from : 撤消授权关键字

权限: 如select\insert\update\delete等,如果是所有用all

数据库名.表名: 该用户可以操作哪个数据库的哪些表。如果要撤消授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

’用户名’@‘主机名’ : 注意单引号不能省略

案例:

撤消’root2’的权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> revoke all on zutuanxue.* from 'root2'@'%';
Query OK, 0 rows affected (0.01 sec)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
DCL数据库控制语言的详细用法
我们现在默认使用的都是root用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
绿水长流z
2024/06/18
2890
DCL数据库控制语言的详细用法
13-DCL用户管理语言
DCL-用户管理语言 show DATABASES; # 切换到mysql数据库 use mysql; # 查看user表 SELECT * from user; # 创建用户语法 # CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; # localhost表示本地主机 通配符%表示任意主机(可远程访问) CREATE USER 'renboyu'@'%' IDENTIFIED BY 'renboyu01'; # 修改密码 # UPDATE USER SET aut
Ywrby
2022/10/27
1960
Mysql系列 - 第3天:管理员必备技能(必须掌握)
在玩mysql的过程中,经常遇到有很多朋友在云上面玩mysql的时候,说我创建了一个用户为什么不能登录?为什么没有权限?等等各种问题,本文看完之后,这些都不是问题了。
路人甲Java
2019/09/16
6520
基础SQL-DCL语句-创建用户-授权用户-撤销授权-查看权限-删除用户-修改用户密码
我们一般默认使用的都是root用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
Devops海洋的渔夫
2022/01/17
1.5K0
基础SQL-DCL语句-创建用户-授权用户-撤销授权-查看权限-删除用户-修改用户密码
MySQL 权限操作
  MySQL 权限系统保证所有的用户只执行允许做的事情。当连接 MySQL 服务器时,用户的身份由用户从那儿连接的主机和用户指定的用户名来决定。连接后发出请求后,系统根据用户的身份和用户想做什么来授予权限。MySQL 中采用用户名 + 主机名来识别用户的身份。例如,从 abc.com 连接的用户 root 不一定和从 bcd.com 连接的 root 是同一个人。MySQL 通过允许你区分在不同的主机上碰巧有同样名字的用户来处理它,可以对 root 从 abc.com 进行的连接授与一个权限集,而为 root 从 bcd.com 的连接授予一个不同的权限集。MySQL存取控制包含2个阶段:  ♞ 阶段1:服务器检查是否允许你连接。  ♞ 阶段2:假定能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。
Demo_Null
2020/09/28
2.9K0
MySQL 权限操作
【MySQL 系列】MySQL 语句篇_DCL 语句
DCL( Data Control Language,数据控制语言)用于对数据访问权限进行控制,定义数据库、表、字段、用户的访问权限和安全级别。主要关键字包括 GRANT、 REVOKE 等。
栗筝i
2024/03/19
5780
《MySQL 入门教程》第 05 篇 账户和权限
当客户端连接 MySQL 服务器时,必须提供有效的身份认证,例如用户名和密码。当用户执行任何数据库操作时,服务器将会验证用户是否具有相应的权限,例如查询表需要 SELECT 权限,删除对象需要 DROP 权限。
玖柒的小窝
2021/10/25
1.3K0
《MySQL 入门教程》第 05 篇 账户和权限
MySQL DCL 数据控制
连接到 MySQL 服务器后,管理员或特权用户可以使用 CREATE USER 语句创建新用户。
恋喵大鲤鱼
2023/10/12
2520
MySQL学习6_DCL
data control language,DCL,数据控制语言,主要是对数据库中的登录和用户的权限进行控制的语言,包含
皮大大
2021/03/02
4500
数据库-MySQL-基础(6)- DCL
  创建itcast ,只能够在当前主机localhost 访问,密码 123456 
莫浅子
2022/11/18
3480
数据库-MySQL-基础(6)- DCL
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
.29.
2023/11/14
2640
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
【0基础学习mysql】之DCL
个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主
天寒雨落
2022/11/20
3830
【0基础学习mysql】之DCL
mysql 权限相关
MySQL5.7 mysql.user表没有password字段改 authentication_string;
用户2657851
2020/03/04
2K0
第十一章《mysql用户与权限》
mysql关于用户的信息保存在mysql.user表当中,关于用户的权限主要是存储在mysql库中(user、db、host、tables_priv、columns_priv)这5个表中。
Java架构师必看
2021/06/02
8110
第十一章《mysql用户与权限》
Mysql用户与权限操作
用户是数据库的使用者和管理者。 MySQL通过用户的设置来控制数据库操作人员的访问与操作范围。 服务器中名为mysqI的数据库,用于维护数据库的用户以及权限的控制和管理。 MySQL中的所有用户信息都保存在mysql.user数据表中。
海盗船长
2021/12/07
3.6K0
Mysql用户与权限操作
【MySQL】:深入理解并掌握DML和DCL
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
屿小夏
2024/02/09
2300
【MySQL】:深入理解并掌握DML和DCL
DCL 管理用户与权限控制
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
久绊A
2023/04/10
5790
Mysql 中的三种创建用户的方式
MySQL支持使用CREATE USER语句创建用户,使用GRANT语句创建用户,也可以通过操作mysql数据库下的user数据表来创建用户。
跟着飞哥学编程
2023/03/11
3.7K0
【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限
MySQL 是一个强大的关系型数据库管理系统,提供了丰富的功能和选项来管理数据库和用户。数据库管理员(DBA)通常使用数据控制语言(Data Control Language,简称 DCL)来管理用户的权限和访问。
繁依Fanyi
2023/10/12
4270
【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限
MySQL的用户管理
#前言:我们知道,无论是登陆MySQL数据库还是登陆Linux系统,都需要有用户来登陆。默认情况下,root用户是享有最高权限的超级用户,可以使用包括create,drop,insert等操作,但是我们也需要一些普通用户来进行管理,接下来就让我们对号入座,来进行如何创建用户,授权用户,和删除用户等操作
老油条IT记
2020/03/20
2.4K0
相关推荐
DCL数据库控制语言的详细用法
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验