【MySQL】DCL数据控制语言(非常适合MySQL初学者学习)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【MySQL】DCL数据控制语言(非常适合MySQL初学者学习)

🌟前言


什么是DCL数据控制语言?

答:数据控制语言(DCL:Data Control Language)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、REVOKE等语句。


🌟限制用户指定IP登录


1.查看某用户可以在哪台机器登录

select user,host from mysql.user where user='用户名';


2.修改mysql用户的登录IP

update mysql.user set host='localhost' where user='用户名';


3.刷新权限

flush privileges;

🌟用户密码操作


用户密码修改


方法1:set password for 用户@ip = password(‘密码’);

set password for root@localhost = password('root12345');


方法2:mysqladmin -u用户 -p旧密码 password 新密码;

mysqladmin -uroot -proot12345 password root2222


方法3: update mysql.user set authentication_string=password(‘密码’) where user=‘用户’ and host=‘ip’;

update mysql.user set authentication_string=password('root') where user='root' and host='localhost';


忘记密码


  • 修改配置文件my.cnf (默认在/etc/my.cnf),在[mysqld]下面加上 skip-grant-tables (跳过权限)。
  • 重启mysql服务。
  • mysql -uroot -p 无需密码登录进入。
  • 进行修改密码的命令操作

🌟创建用户并限制IP登录、删除用户


--创建root用户并指定所有网段都能登录
create user 'root'@'%' identified by '123456';
--创建root用并指定在51网段登录
create user 'root'@'%.%.51.%' identified by '123456';
--删除用户
drop user 'root'@'%';
delete from mysql.user where user='root';

🌟库表权限授权、回收


权限授权


  • 语法格式:grant 权限1,权限2… on 数据库对象 to ‘用户’@‘host’ identified by ‘password’;
  • 所有权限:all privileges
  • 所有库表: * . *
--对现有用户进行授权:对现有用户root授予所有库所有表所有权限。
grant all privileges on *.* to 'pig';
--创建新用户sys授予sys数据库的所有权限,登录密码123456,任何一台主机登录
grant all privileges on sys.* to 'sys'@'%' 
identified by '123456';
--授予查看、修改、新增的权限
grant select,update,insert on sys.* to 'sys'@'%' 
identified by '123456'


权限回收


  • 语法格式:revoke 权限1,权限2… on 数据库对象 from ‘用户’@‘host’;
--回收root用户的所有权限(注意:没有回收登录权限)
revoke all privileges on *.* from 'root' @ '%';
flush privileges;
---回收pig用户的所有权限(并回收它的登录权限)
delete from mysql.user where user='root';
flush privileges;
---回收查询、修改权限
revoke select,update on sys.* from 'sys'@'%';
flush privileges;


🌟grant、revoke一览表


命令 语法格式 描述
GRANT grant 权限1,权限2… on 数据库对象 to ‘用户’@‘host’ identified by ‘password’; 授予用户或角色对数据库对象的权限
REVOKE revoke 权限1,权限2… on 数据库对象 from ‘用户’@‘host’; 撤销用户或角色对数据库对象的权限


🌟写在最后


最后感谢大家对本博文的阅读,如有不足请大家在评论区作出补充,感激不尽!


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
21 6
|
15天前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
21天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
59 14
|
8天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
71 15
|
2天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
9天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
13天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
37 1
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
46 4