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

61 阅读3分钟

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:重温MySQL


在这里插入图片描述


@[toc]

🌟前言

什么是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一览表

命令语法格式描述
GRANTgrant 权限1,权限2..... on 数据库对象 to '用户'@'host' identified by 'password';授予用户或角色对数据库对象的权限
REVOKErevoke 权限1,权限2..... on 数据库对象 from '用户'@'host';撤销用户或角色对数据库对象的权限

🌟写在最后

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


请添加图片描述