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

【MySQL】用户管理

用户管理

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

  • 与Linux操作系统类似,MySQL中也有超级用户和普通用户之分。
  • 如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户,并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作。

一. 用户

1. 用户信息

MySQL当中默认有一个名为mysql的数据库。

在这里插入图片描述

查看该数据库中的表,可以看到其中有一个名为user的表。

在这里插入图片描述

user表中存储的就是MySQL中用户相关的信息。

在这里插入图片描述

  • user: 表示该用户的用户名。
  • host: 表示该用户可以从哪个主机登录,localhost表示只能从本机登录,%表示可以从任意地方登录。
  • authentication_string: 表示该用户的密码经过加密后的值。
  • xxx_priv: 表示该用户是否拥有对应权限。

在查看用户信息时为了避免刷屏,可以只选择其中的部分字段进行显示。

在这里插入图片描述

需要注意的是,MySQL中可以存在同名的用户,只要这些同名用户对应的登录主机不同即可,因为user表中的主键是复合主键,由表中的user列和host列共同承担。

在这里插入图片描述

2. 创建用户

CREATE USER '用户名'@'登录主机' IDENTIFIED BY '密码';

比如下面创建一个用户名为xzy的用户,并且可以从本地登录的用户,创建用户成功后,该用户的相关信息也就被写入到刚才的user表中了。

在这里插入图片描述

这时便可以用新创建的普通用户来连接MySQL服务器了。

在这里插入图片描述

3. 修改用户密码

用户自己修改自己的密码

SET PASSWORD = '密码';

在这里插入图片描述

超级用户修改任意用户的密码

ALTER USER '用户名'@'登录主机' IDENTIFIED BY '密码';

在这里插入图片描述

4. 删除用户

DROP USER '用户名'@'登录地址';

比如将刚才创建的用户删除后,该用户在user表中对应的记录也就不存在了。

在这里插入图片描述

二. 数据库的权限

在这里插入图片描述

需要注意的是,新创建的用户没有任何权限,因此创建用户后需要给用户授权。

1. 给用户授权

GRANT 权限列表 ON 数据库.TO '用户名'@'登录地址' [IDENTIFIED BY '密码'];

说明:

  • '用户名'@'登录地址':表示给哪一个用户授权。
  • 权限列表:表示要授予用户何种权限,多个权限之间用逗号隔开。
  • 数据库.表:表示要授予用户哪个数据库下的哪个对象的权限。
  • []内部为可选字段’:如果用户存在,则在授予权限的同时修改该用户的密码,如果用户不存在,则创建该用户。

*.* 表示所有数据库的所有对象 (表,视图,存储过程等)
库.* 表示某个数据库中的所有数据对象 (表,视图,存储过程等)

一个终端创建可以远程登入数据库的用户zhangsan,另一个客户端远程登入该数据库。

在这里插入图片描述

root 用户创建数据库 rootDB,zhangsan用户查看数据库,此时没有 rootDB

在这里插入图片描述

root 用户在 rootDB 数据库下创建 student 表并插入一些数据,并且将该数据库下的表的所有权限授权给远程登入的zhangsan用户,此时 zhangsan 用户可以看到rootDB数据库并可以向其的student表中插入数据。

在这里插入图片描述

查看远程登入的 zhangsan 用户的拥有的权限

在这里插入图片描述

说明:创建用户后该用户默认会有USAGE权限,该权限只能用于数据库登录,不能执行任何操作。

2. 回收权限

REVOKE 权限列表 ON 数据库.FROM '用户名'@'登录地址';

说明:回收权限的语法与授权一样,只不过将to关键字改为了from,并且没有了可选字段。

root 用户回收 rootDB 中的 student 表的插入权限时,此时 zhangsan 用户就无法在该表中插入数据。

在这里插入图片描述

http://www.xdnf.cn/news/280981.html

相关文章:

  • Javascript学习笔记1——数据类型
  • 【哈希表的简单介绍】
  • Python|Pyppeteer实现自动登录小红书(32)
  • PyQt5基本介绍
  • 第八章.javaI/O和反射机制
  • 【深度解析】DCN-V2:Google新一代特征交叉网络,如何实现推荐系统精准度飞跃?
  • [硬件电路-7]:模拟电路常见元器件 - 功率检测与PD光电二极管
  • SpringBoot简介详解:从入门到精通
  • 学习方法讨论——正论科举精神的内核
  • 51单片机入门教程——每个音符对应的重装载值
  • 解决在 Linux 中 WPS 字体缺失问题
  • 算法学习时段效能分布
  • GateWay使用
  • Linux系统之----进程控制
  • 【C++】哈希表
  • 调试Cortex-M85 MCU启动汇编和链接命令文件 - 解题一则
  • JAVA---多态
  • 文章记单词 | 第61篇(六级)
  • SpringBoot的启动流程
  • Encoder和Decoder的区别
  • MySQL Binlog二进制格式与解析详解
  • MySQL — 数据查询
  • 如何提高情商?(优化版)
  • 【RocketMQ Broker 相关源码】- broker 启动源码(1)
  • 身份认证、访问控制技术、SSO单点登录技术、特权访问管理、身份治理与管理——数据安全守护者
  • 支撑座的安装精度对滚珠丝杆性能有哪些影响?
  • 5.3【T】pc
  • 【Java idea配置】
  • load_dotenv()详解
  • 数据采集文氏管旋风高效湿式除尘器文丘里旋风除尘组合实验装置