专门讲讲这个MYSQL受权当中的with grant option的做用

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

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受权

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

~~~~~~~~~~~~~~~~~~~~数据库

~~~~~~~~~~~~~~~~~~~~ide

受权表使用举例 

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用户就完全删除了。 spa

相关文章
相关标签/搜索