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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 一、数据库用户管理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
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL 关系型数据库 MySQL
【MYSQL基础】MYSQL用户管理
【MYSQL基础】MYSQL用户管理
199 1
|
SQL 关系型数据库 MySQL
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
⑤ 【MySQL】DCL语句 —— 用户管理、权限控制
199 0
|
存储 关系型数据库 MySQL
【mysql】—— 用户管理
【mysql】—— 用户管理
222 0
|
存储 关系型数据库 MySQL
【MySQL】用户管理 -- 详解
【MySQL】用户管理 -- 详解
|
存储 关系型数据库 MySQL
Mysql 用户管理
Mysql 用户管理
207 0
|
存储 关系型数据库 MySQL
Mysql 用户管理(创建、删除、改密、授予权限、取消权限)
Mysql 用户管理(创建、删除、改密、授予权限、取消权限)
1429 0
|
存储 关系型数据库 MySQL
MySQL_11 用户管理和权限管理
MySQL 第十一节 用户管理和权限管理 内容分享。
177 0
|
安全 关系型数据库 MySQL
深入解析MySQL 8中的角色与用户管理
深入解析MySQL 8中的角色与用户管理
821 3
|
关系型数据库 MySQL Linux
MySQL免编译安装和用户管理(转)
MySQL免编译安装和用户管理(转)
82 1
|
存储 关系型数据库 MySQL
【MySQL】用户管理
【MySQL】用户管理
176 0

推荐镜像

更多