当前位置: 首页 > article >正文

MySQL用户管理

文章目录

  • 一、用户
    • 1.用户信息
    • 2.创建用户
    • 3.删除用户
    • 4.修改用户密码
  • 二、数据库的权限
    • 1. MySQL 中的权限
    • 2.给用户授权
    • 3.回收权限

如果我们只能使用 root 用户,那么会存在安全隐患。这时,就需要使用 MySQL 的用户管理。

一、用户

1.用户信息

MySQL 中的用户信息,都存储在系统数据库 mysql 的 user 表中。

在这里插入图片描述

在这里插入图片描述
说明:
 ① user:用户名。
 ② host:表示这个用户可以从哪个主机登录(如果是 localhost,表示只能从本机登录)。
 ③ authentication_string:用户密码通过 password 函数加密后的。
 ④ *_priv:用户拥有的权限。

2.创建用户

create user '用户名'@'登录主机' identified by '密码';

创建一个名为 skc,且可以从任意主机登录的用户。
在这里插入图片描述

若用户的登录主机是 %,则该用户也可以在其它主机远程登录。
在这里插入图片描述

3.删除用户

drop user '用户名'@'登录主机';

删除一个名为 skc,且可以从任意主机登录的用户。在这里插入图片描述

4.修改用户密码

# root用户修改指定用户的密码
set password for '用户名'@'登录主机'=password('新的密码');update user set 密码设置的地方=password('密码') where User='用户名' and Host='登录主机';

# 用户自己改自己的密码
set password=password('新的密码');

注:按照版本的不同,密码设置的地方可能是 password,也有可能是 authentication_string 。

root 用户修改 ‘skc’@‘%’ 的密码。
法一:
在这里插入图片描述
法二:在这里插入图片描述

‘skc’@‘%’ 自己改自己的密码。
在这里插入图片描述

二、数据库的权限

1. MySQL 中的权限

在这里插入图片描述

2.给用户授权

新创建的用户几乎没有权限,因此在创建用户后需要给用户授权。

grant 权限列表 on 库名.对象名 to '用户名'@'登录主机' [identified by '密码'];

说明:
 ① ‘用户名’@‘登录主机’:表示要给哪个用户赋予权限。
 ② 库名.对象名:表示要给用户赋予在哪个对象上的权限。
 ③ 权限列表:表示要给用户赋予哪种权限(若有多个权限则用逗号分隔开)。
 ④ identified by ‘密码’:可选项。如果该用户存在,则在赋予权限的同时修改该用户的密码;如果该用户不存在,则创建该用户。

注:grant all [privileges] on ...;:表示赋予该用户在该对象上的所有权限。

可以通过命令show grants for '用户名'@'登录主机';来查看某个用户所拥有的权限。

新创建的用户 ‘skc’@‘%’ 几乎没有权限。在这里插入图片描述

在这里插入图片描述在这里插入图片描述

root 用户给 ‘skc’@‘%’ 用户赋予在 102_db.* 上的 select 权限。
在这里插入图片描述

‘skc’@‘%’ 用户没有 create 权限。在这里插入图片描述
root 用户给 ‘skc’@‘%’ 用户赋予在 102_db.* 上的 create 权限。
在这里插入图片描述
被赋权的用户需要重新登录,其被赋予的权限才能生效。在这里插入图片描述

‘skc’@‘%’ 用户没有 drop 权限。在这里插入图片描述
root 用户给 ‘skc’@‘%’ 用户赋予在 102_db.* 上的 drop 权限。
在这里插入图片描述
被赋权的用户需要重新登录,其被赋予的权限才能生效。在这里插入图片描述

赋予该用户在该对象上的所有权限。在这里插入图片描述

如果发现赋予权限后,没有生效,则执行命令flush privileges;,但实际上该命令并没有什么效果。

实际上最有用的方法就是,直接退出重新登录,这样必定会生效。

3.回收权限

revoke 权限列表 on 库名.对象名 from '用户名'@'登录主机';

回收 ‘skc’@‘%’ 用户在 102_db.* 上的所有权限。在这里插入图片描述


http://www.kler.cn/a/16041.html

相关文章:

  • 本地 / 网络多绑定用例总结
  • 力扣 最长公共前缀-14
  • Suricata
  • debian 系统更新升级
  • 使用 Vision 插件让 GitHub Copilot 识图问答
  • 「QT」窗口类 之 QWidget 窗口基类
  • 云计算基础(持续更新)
  • 【软件测试】项目测试—MySQL数据库操作应用场景?必会知识详全(超详细)
  • 术数基础背诵口诀整理
  • 小红书流量密码是什么,怎么掌握并运用
  • 定时每天凌晨一点在linux系统上执行一个autobuild.sh脚本如何实现?
  • Keep your direction
  • 软件工程导论 - 了解黑盒测试
  • 使用多模态数据映射大脑网络
  • 3dMax需要什么样的硬件环境才能更好的工作?
  • 【配电网优化】基于串行和并行ADMM算法的配电网优化研究(Matlab代码实现)
  • 微服务架构编码构建
  • 【高危】Apache Superset <2.1.0 认证绕过漏洞(POC)(CVE-2023-27524)
  • linux常用命令大全(保姆及入门)
  • main.m文件解析--@autoreleasepool和UIApplicationMain
  • C++构造函数和析构函数(附示例代码)
  • 封装建立-SMD封装
  • springboot网上商城项目(一)
  • 停车场管理系统的设计与实现_kaic
  • 大学本科毕业选择继续考研,还是去做程序员?我来聊聊看法
  • Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(二)