對象的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