MySQL数据库之用户管理(下)

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

示例2:

允许用户 nancy 在所有终端远程连接mysql,并拥有所有权限。使用密码“123456”进行登录。

GRANT ALL PRIVILEGES ON *.* TO 'nancy'@'%' IDENTIFIED BY '123456';
复制代码


网络异常,图片无法展示
|


使用nancy用户远程连接mysql:

mysql -unancy -p123456 -h 192.168.72.50 -P3306
 #-p123456,小写p指定登录密码
 #-P3306,大写P指定端口号
 #-h 192.168.72.50,指定目标IP/主机名
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


2.2 查看用户的权限

SHOW GRANTS;     #查看当前用户(自己)的权限
 SHOW GRANTS FOR 用户名@来源地址;    #查看其他用户的权限
 示例:
 show grants for 'zhangsan'@'localhost';
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


USAGE特权说明符:

USAGE特权说明符,表示“无特权”。它与GRANT一起在全局级别上使用,以在不影响现有帐户特权的情况下修改帐户属性(例如资源限制或SSL特征)。

USAGE是一种在没有授予任何真实特权的情况下告诉MySQL帐户存在的方法。因此,他们仅具有使用 MySQL服务器的权限USAGE。它对应于mysql.user表中未设置特权的行。

对于GRANT USAGE ON,查看⼿册有如下介绍和实例:

mysql> GRANT USAGE ON . TO 'zhangkh'@'localhost’;

⼀个账户有⽤户名zhangkh,没有密码。该账户只⽤于从本机连接(即登录MySQL)。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户⽽不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。

2.3 撤销用户的权限

revoke 权限列表/ALL on 库名.表名 from '用户名'@'来源地址';
复制代码


示例1:

针对用户 nancy@%,撤销其除了登录权限外的其他权限。

revoke all on *.* from 'nancy'@%;
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


示例2:

如果用户的权限是针对具体的库和表,那么在撤销权限时,也需要指定库和表,不能写成 *.* 的形式,否则命令不生效。

#这条命令不生效,需要指定库和表。
 revoke all on *.* from 'zhangsan'@'localhost';
 #撤销用户对school库内所有表的权限
 revoke all on school.* from 'zhangsan'@'localhost';
复制代码


使用*.* 撤销权限,命令不生效:

网络异常,图片无法展示
|


指定具体的库和表,命令生效:

网络异常,图片无法展示
|


总结

MySQL的相关使用可查看官方手册:

MySQL :: MySQL 8.0 Reference Manual :: 6.2.2 Privileges Provided by MySQL

1、用户管理

create user 'username'@'address' identified by 'password';   #创建用户
 select user,host,authentication_string from mysql.user;      #查看用户信息
 rename user old_user to new_user;        #修改用户名
 drop user '用户名'@'来源地址';            #删除用户
 set password = password('XXXX');         #修改当前登录用户的密码
 set password for '用户名'@'来源地址' = password('XXXX');     #修改其他用户的密码
 select user ();      #查看当前登录用户和来源地址
 ###忘记root用户密码的解决方法:
 修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置项下加入 skip-grant-tables
 service mysqld restart   #重启服务
 mysql    #免密登陆  
 update mysql.user set authentication_string=password('XXX') where user='root';  #修改密码
 flush privileges;    #刷新数据库
复制代码


2、用户授权

#授予用户权限
 grant 权限列表/ALL ON 库名.表名 to 'username'@'address' [identified by 'XXXXX'];
 show grants;                               #查看当前用户(自己)的权限
 show grants for 'username'@'address';      #查看其他用户的权限
 revoke 权限列表/ALL on 库名.表名 from 'username'@'address';    #撤销用户的权限
 mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号              #远程连接mysql
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
存储 关系型数据库 MySQL
【mysql】—— 用户管理
【mysql】—— 用户管理
|
7月前
|
SQL 关系型数据库 MySQL
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
80 0
|
SQL 关系型数据库 MySQL
【MYSQL基础】MYSQL用户管理
【MYSQL基础】MYSQL用户管理
98 1
|
7月前
|
存储 关系型数据库 MySQL
【MySQL】用户管理 -- 详解
【MySQL】用户管理 -- 详解
|
6月前
|
安全 关系型数据库 MySQL
深入解析MySQL 8中的角色与用户管理
深入解析MySQL 8中的角色与用户管理
327 3
|
7月前
|
关系型数据库 MySQL Linux
MySQL免编译安装和用户管理(转)
MySQL免编译安装和用户管理(转)
38 1
|
6月前
|
存储 关系型数据库 MySQL
【MySQL】用户管理
【MySQL】用户管理
|
存储 关系型数据库 MySQL
Mysql 用户管理
Mysql 用户管理
68 0
|
存储 关系型数据库 MySQL
Mysql 用户管理(创建、删除、改密、授予权限、取消权限)
Mysql 用户管理(创建、删除、改密、授予权限、取消权限)
716 0
|
存储 关系型数据库 MySQL
MySQL_11 用户管理和权限管理
MySQL 第十一节 用户管理和权限管理 内容分享。
97 0