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

对象的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用户就彻底删除了。 

时间: 2024-07-28 16:38:16

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

mysql授权 远程访问授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY WITH GRANT OPTION  FLUSH PRIVILEGES    mysql授权 远程访问授权   MySQL> grant all privileges on lfchat.* to dbname@localhost identified by 'password'; Query OK, 0 rows affected (0.03 sec)   mysql> flush

Mysql授权远程访问

  Mysql授权远程访问        在安装mysql的机器上运行:  1.d:\mysql\bin\>mysql -h localhost -u root  //这样应该可以进入MySQL服务器  2.mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION  //赋予任何主机访问数据的权限  例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话.  GRANT ALL PRIVILEG

远程连接mysql 授权方法详解_Mysql

今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器上运行: 1: 创建user用户 复制代码 代码如下: CREATE USER demo IDENTIFIED BY "123456" 2. 复制代码 代码如下: mysql>GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'WITH G

mysql授权命令 grant使用方法详解

MySQL 赋予用户权限命令可以简单概括为: grant 权限 on 数据库对象 to 用户 实例一: grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利,%表示来自任意域的(所有ip)common_user 用户拥有查询.插入.更新.删除的权限. grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.*

MySQL授权问题总结_php技巧

我用localhost的root帐号不能连 最后请教DBA组新建用户搞定! 现弄些受权用户的资料 以备不时之需 授权表使用举例 grant用于给增加用户和创建权限,revoke用于删除用户权限. 下面是一些用grant增加用户和创建权限的例子: mysql> grant all privileges on *.* to test@localhost identified by 'test' with grant option; 这句增加一个本地具有所有权限的test用户(超级用户),密码是tes

mysql授权用户远程访问工作笔记

用root身份登录mysql服务器 mysql -h localhost -u root 赋予任何主机使用 username 远程访问 mysql>GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'WITH GRANT OPTION 设置指定的用户只能从指定的ip进行访问,这里是新建了远程访问的用户 GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.1.250' IDENTIFIED BY 'password'

解析MYSQL授权原则

MySQL是一个跨平台的开源关系型数据库管理系统,是我们常用的最经济实惠的数据库,由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,更让用户得到最切实的实在,很多用户在应用中对授权原则不是很了了解,下面我们就为大家来解析. 服务器重新启动的情况 当mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效. 被服务器立即应用的情况 用GRANT.REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到. 直接修改授权表的情况 如果你手工地修改授权表(使用I

sql安全操作语句

SQL语言所提供的有关安全性操作的语句,主要是GRANT和REVOKE这两种. (1)GRANT语句 该语句被用来对特定的用户授予关于数据库对象安全性的权限.通常GRANT语句由表或视图的拥有者来使用,以授权其它用户对相应表或视图中的数据进行存取操作,其使用的格式如下: GRANT语句包括一组被授予的权限.一个权限所作用的表以及一个被授予权限的用户标识符.这里需要说明的是SELECT(列名序列).INSERT(列名序列).DELETE(列名序列)和UPDATE(列名序列)可以结合在一起进行授权.

MySQL用户创建和授权

环境 MySQL 5.1 + 命令行工具 问题 MySQL用户创建和授权 解决 1.以 root用户登录创建新用户 C:\Users\Wentasy>mysql -uroot -p mysql> CREATE USER music IDENTIFIED BY 'music'; 2.以root用户登录创建数据库 create database music default charset utf8; create table tb_user ( tb_user_id int(11) primary