【数据库】常见的 MySQL 用户管理操作

ops/2024/12/14 20:20:56/

在 MySQL 中,用户管理是非常重要的,它涉及到创建、删除、修改用户以及给用户分配权限等操作。下面是一些常见的 MySQL 用户管理操作。

1. 创建新用户

要在 MySQL 中创建一个新用户,可以使用 CREATE USER 语句:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • 'username' 是你要创建的用户名。
  • 'host' 是允许该用户连接的主机(可以是 localhost,也可以是 %,表示任何地方的主机)。
  • 'password' 是该用户的密码。

例如,创建一个用户名为 testuser,密码为 password123,并且可以从任何主机连接的用户:

CREATE USER 'testuser'@'%' IDENTIFIED BY 'password123';

2. 查看当前的用户

要查看当前 MySQL 中的所有用户,可以执行以下命令:

SELECT User, Host FROM mysql.user;

这将列出所有的用户和他们可以连接的主机。

3. 修改用户密码

如果你想修改某个用户的密码,可以使用 ALTER USER 语句:

ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword';

例如,修改用户 testuser 的密码为 newpassword123

ALTER USER 'testuser'@'%' IDENTIFIED BY 'newpassword123';

4. 删除用户

如果不再需要某个用户,可以使用 DROP USER 语句删除该用户:

DROP USER 'username'@'host';

例如,删除 testuser 用户:

DROP USER 'testuser'@'%';

5. 授予用户权限

通过 GRANT 语句可以为用户授予权限。可以授予某个用户对数据库或表的访问权限。

授予某个用户所有权限

例如,授予 testusertestdb 数据库的所有权限:

GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%';
授予某个用户特定权限

例如,授予 testusertestdb 数据库SELECT 权限:

GRANT SELECT ON testdb.* TO 'testuser'@'%';

你可以授予不同的权限类型,如:

  • SELECT:查询数据。
  • INSERT:插入数据。
  • UPDATE:更新数据。
  • DELETE:删除数据。
  • ALL PRIVILEGES:授予所有权限。

6. 刷新权限

在修改用户权限之后,应该执行以下命令刷新权限:

FLUSH PRIVILEGES;

这将使得权限变更立即生效。

7. 撤销用户权限

如果想撤销某个用户的某些权限,可以使用 REVOKE 语句:

例如,撤销 testusertestdb 数据库SELECT 权限:

REVOKE SELECT ON testdb.* FROM 'testuser'@'%';

8. 查看用户权限

要查看某个用户的权限,可以使用 SHOW GRANTS 语句:

SHOW GRANTS FOR 'username'@'host';

例如,查看 testuser 的权限:

SHOW GRANTS FOR 'testuser'@'%';

9. 创建管理员用户

如果你想创建一个可以管理数据库的超级管理员用户,可以使用 GRANT ALL PRIVILEGES 并授予其对所有数据库的权限:

CREATE USER 'admin'@'%' IDENTIFIED BY 'adminpassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

WITH GRANT OPTION 使得该用户能够授予他人权限。

10. 查看当前用户的权限

查看当前登录用户的权限:

SHOW GRANTS;

总结

这些是常见的 MySQL 用户管理操作。通过这些命令,你可以有效地管理 MySQL 中的用户和权限。


http://www.ppmy.cn/ops/141901.html

相关文章

Python爬虫——猫眼电影

用python中requests库爬取猫眼电影信息并保存到csv文件中 猫眼专业版 爬取界面 效果预览 代码 import requests import jsonurl1https://piaofang.maoyan.com/dashboard-ajax?orderType0&uuid1938bd58ddac8-02c2bbe3b009ed-4c657b58-144000-1938bd58ddac8&timeStamp…

RocketMQ面试题合集

消费者获取消息是从Master Broker还是Slave Broker获取? Master Broker宕机,Slave Broker会自动切换为Master Broker吗? 这种Master-Slave模式不是彻底的高可用模式,他没法实现自动把Slave切换为Master。在RocketMQ 4.5之后&…

黑客基础之html

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

深度学习训练参数之学习率介绍

学习率 1. 什么是学习率 学习率是训练神经网络的重要超参数之一,它代表在每一次迭代中梯度向损失函数最优解移动的步长,通常用 η \eta η 表示。它的大小决定网络学习速度的快慢。在网络训练过程中,模型通过样本数据给出预测值&#xff0…

Linux下SVN客户端保存账号密码

参考文章:解决:Linux上SVN 1.12版本以上无法直接存储明文密码_linux svn 保存密码-CSDN博客新版本svn使用gpg-agent存储密码-CSDN博客svn之无法让 SVN 存储密码,即使配置设置为允许_编程设计_ITGUEST 方法一:明文方式保存密码 首…

lc46全排列——回溯

46. 全排列 - 力扣(LeetCode) 法1:暴力枚举 总共n!种全排列,一一列举出来放入list就行,关键是怎么去枚举呢?那就每次随机取一个,然后删去这个,再从剩下的数组中继续去随机选一个&a…

Ubuntu本地快速搭建web小游戏网站,公网用户远程访问【内网穿透】

文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子域名前言 网:我们通常说的是互联网;站:可以理解成…

[C++]类的继承

一、什么是继承 1.定义: 在 C 中,继承是一种机制,允许一个类(派生类)继承另一个类(基类)的成员(数据和函数)。继承使得派生类能够直接访问基类的公有和保护成员&#xf…