MySQL用户管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL用户管理

与Linux操作系统类似,MySQL中也有超级用户和普通用户之分

若一个用户只需访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户,并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作

一、用户

1.1 用户信息

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


aeccd0c11c42465aa27e9d976fd65baf.png


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


1faa56815b2245f5b92e3aa02b56e853.png


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


e8c7a9d7771a47f68b076bcbaf35853e.png


user: 表示该用户的用户名

host: 表示该用户可以从哪个主机登录,localhost表示只能从本机登录,%表示可以从任意地方登录

authentication_string: 表示该用户的密码经过password函数加密后的值

xxx_priv: 表示该用户是否拥有对应权限

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


908539648e0d49ccab45cc19c8e610bc.png


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


85f8fccc84d34d7e9d47e2febcd154cb.png


1.2 创建用户

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

如下面创建一个用户名为GG_Bond,并且可以从任意地方登录的用户


1a491f320a08478cadae0119dc8a3e93.png


创建好后就可以用新用户来连接MySQL服务器了


60fa14c26feb4ae19c4a04c6fb07a045.png

注意:


创建用户的SQL中包含用户的密码,因此该SQL不会被记录,所以不能通过上下键进行追溯

MySQL本身的认证级别比较高,因此创建用户时设置的密码不能太简单,否则会出现报错,这时可以选择将密码设置复杂一些,也可以对密码相关的设置进行调整

通过show命令查看全局变量,可以看到密码设置相关的要求


38a5ff85b9f8426494730bd21c1ac868.png

1.3 修改用户密码

用户修改自己的密码


以通过调用password函数,将新密码加密后的值设置到password中

c8add73a9a454196bd1d35b767e42327.png



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


超级用户可以通过调用password函数,将新密码加密后的值设置到指定用户的password中


cc34fe7a95414ea384654e114e0adbe9.png


1.4 删除用户

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

8c711445efe04b6c83a0ca5f83920dc0.png


注意:删除用户时若不指明待用户的登录地址,则默认删除的是登录地址为%的用户


二、数据库权限

2.1 MySQL中的权限

8a6dc809a21f4c4ca82a6d6a5f1794da.png


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


2.2 赋权

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

'用户名'@'登录地址':表示给哪一个用户授权

库名.对象名:表示要授予用户哪个数据库下的哪个对象的权限

权限列表:表示要授予用户何种权限,多个权限之间用逗号隔开

IDENTIFIED BY '密码'可选:若用户存在,则在授予权限的同时修改该用户的密码;若用户不存在,则创建该用户

如下面创建用户GG_Bond,并授予用户在test数据库下所有对象的select权限


f616812e7c3f4807ac7bed2f28d08935.png


授权后通过 show grants for '用户名'@'登录地址' 查看该用户现有的权限


3a30f560af11474fb8b71ac059815f4e.png


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

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

此时该用户查看数据库时,就能查看到test数据库了(创建用户后默认只能看到information_schema数据库,该数据库中保存的是MySQL服务器所维护的所有其他数据库的信息)

b08b3375d50f4bafafb2ede6614224b1.png



进入test数据库后,也能查看其中的所有表


1d78daabf05f4f179dedbab70307b835.png


但该用户目前只能查看表中的信息,而不能对表中的数据进行修改,因为只授予了该用户select权限


a6b83619da7f400fb9f64fe79da5c625.png


下面将test数据库下的所有权限都授予该用户



82f690e56521459d932b2ef06eb1e6c9.png

此时该用户就可以对表中的数据进行其他操作了


9b6bc4e276ef4385b7e3551b47c34523.png


2.3 回收权限

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

将GG_Bond用户在test数据库下的所有权限回收


5e54a0eabf3b466b8fd1c0a7edd958dc.png


注意:


回收用户在某一数据库下的权限后,在该用户下一次进入该数据库时才会生效

若发现赋权或者回收权限后,没有生效,执行flush privileges


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
存储 关系型数据库 MySQL
【mysql】—— 用户管理
【mysql】—— 用户管理
|
6月前
|
SQL 关系型数据库 MySQL
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
71 0
|
SQL 关系型数据库 MySQL
【MYSQL基础】MYSQL用户管理
【MYSQL基础】MYSQL用户管理
88 1
|
6月前
|
存储 关系型数据库 MySQL
【MySQL】用户管理 -- 详解
【MySQL】用户管理 -- 详解
|
5月前
|
安全 关系型数据库 MySQL
深入解析MySQL 8中的角色与用户管理
深入解析MySQL 8中的角色与用户管理
214 3
|
6月前
|
关系型数据库 MySQL Linux
MySQL免编译安装和用户管理(转)
MySQL免编译安装和用户管理(转)
31 1
|
5月前
|
存储 关系型数据库 MySQL
【MySQL】用户管理
【MySQL】用户管理
|
存储 关系型数据库 MySQL
Mysql 用户管理
Mysql 用户管理
63 0
|
存储 关系型数据库 MySQL
Mysql 用户管理(创建、删除、改密、授予权限、取消权限)
Mysql 用户管理(创建、删除、改密、授予权限、取消权限)
535 0
|
存储 关系型数据库 MySQL
MySQL_11 用户管理和权限管理
MySQL 第十一节 用户管理和权限管理 内容分享。
91 0