专门讲讲这个MYSQL授权当中的with grant option的作用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 对象的owner将权限赋予某个用户(如:testuser1) grant select ,update on bd_corp to testuser1 [with grant option ]1.如果带了 with grant option 那么用户testuser1可以将select ,upda...

对象的owner将权限赋予某个用户(如:testuser1)

grant select ,update on bd_corp to testuser1 [with grant option ]
1.如果带了 with grant option 
那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)
grant select,update on bd_corp to testuser2
2.如果没带with grant option
  那么用户testuser1不能给testuser2授权

简单的说就是将权限传递给第三方

~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~

授权表使用举例 

grant用于给增加用户和创建权限,revoke用于删除用户权限。 

下面是一些用grant增加用户和创建权限的例子: 

mysql> grant all privileges on *.* to test@localhost identified by 'test' with grant option; 

这句增加一个本地具有所有权限的test用户(超级用户),密码是test。ON子句中的*.*意味着"所有数据库、所有表"。with grant option表示它具有grant权限。 

mysql> grant select,insert,update,delete,create,drop privileges on test.* to test1@'192.168.1.0/255.255.255.0' identified by 'test'; 

这句是增加了一个test1用户,口令是test,但是它只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限。 

用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。 

给用户创建权限还可以通过直接修改授权表: 

mysql> insert into user 

values("localhost","test",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y"); 

mysql> flush privileges; 

这两句和上面第一句grant的效果是一样的,也是增加了一个本地的test超级用户。我们看到用grant方便多了,而且还不需flush privileges。 

mysql> insert into user (host,user,password) values("192.168.1.0/255.255.255.0","test1",PASSWORD("test")); mysql> insert into db values("192.168.1.0/255.255.255.0","test","test1","Y","Y","Y","Y","Y","Y","N","N","N","N") mysql> flush privileges; 

这三句和上面第二句grant的效果也是一样的,也是增加了一个只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限的test1用户,口令是test。要取消一个用户的权限,使用revoke语句。revoke的语法非常类似于grant语句,除了to用from取代并且没有identified by和with grant option子句,下面是用revoke删除用户权限的例子: 

mysql> revoke all on test.* from test1@'192.168.1.0/255.255.255.0'; 

这句revoke就撤消了上面第二句grant创建的权限,但是test1用户并没有被删除,必须手工从user表删除: 

mysql> delete from user where user='test1'; 

mysql> flush privileges; 

这样,test1用户就彻底删除了。 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
canal
MySQL8.0创建新用户并授权
MySQL8.0创建新用户并授权
28 1
MySQL8.0创建新用户并授权
|
7月前
|
存储 安全 关系型数据库
深入理解MySQL数据库存储引擎及数据授权
深入理解MySQL数据库存储引擎及数据授权
77 0
|
5月前
|
Oracle 关系型数据库 MySQL
oceanbase在MySQL语法兼容模式下,在授权语法、行为方面 是否与 开源MySQL完全一致 ?
oceanbase在MySQL语法兼容模式下,在授权语法、行为方面 是否与 开源MySQL完全一致 ?
107 2
|
6月前
|
关系型数据库 MySQL
Mysql 8.0创建用户并授权
Mysql 8.0创建用户并授权
|
6月前
|
存储 关系型数据库 MySQL
【MySql】入门,存储引擎,授权----保姆级别教学
【MySql】入门,存储引擎,授权----保姆级别教学
49 0
|
8月前
|
存储 小程序 前端开发
uniapp+node.js+mysql前后端微信小程序授权登录
uniapp+node.js+mysql前后端微信小程序授权登录
111 0
|
10月前
|
关系型数据库 MySQL 数据库
mysql权限管理授权
mysql权限管理授权
116 0
|
11月前
|
关系型数据库 MySQL 数据库
MySQL--创建用户命令grant语句学习(详细学习)
MySQL--创建用户命令grant语句学习(详细学习)
771 1
|
12月前
|
存储 关系型数据库 MySQL
关于MySQL账号授权和回收的那点“破事”!
本篇带领对用户的授权和回收似懂非懂的朋友进行简单剖析,希望能起到抛砖引玉的效果。放弃前戏,直奔主题!!!
148 0
|
SQL 关系型数据库 MySQL
MySQL:创建数据库和用户并且给用户授权
MySQL:创建数据库和用户并且给用户授权
57 0