grant <權限> [,<權限>] … [on <操作對象類型><操作對象名>] to <用戶>[,<用戶>]…[with grant option] 作用:將對某一對象的某一權限授予某一用戶
語法各部分解釋: 
用戶: public: 全體用戶 也可以是單個用戶的用戶名
[with grant option] 這個選項表示是否將授予此操作的權利的權利授予用戶。舉個例子:grant select on table Student to u2 with grant option 表示將查詢Student表的權利下放給用戶u2,意味著用戶u2可以查詢Student表了,然而加上with grant option 表示用戶u2可以將查詢權限下放給其他用戶,當u2將權限下放給u3時,u3和u2都可以查詢表。不加with grant option ,u2沒有權限將查詢權利授予其他用戶。
下面結合幾個例子幫助看客來了解以上語句的用法:
前提條件: 數據庫中現存在3個關系表 Student (Sno ,Sname,Ssex,Sage,Sdept); 解釋:學生(學號,學生姓名,學生性別,學生年齡,學生專業); Course(Cno,Cname,Cpno); 解釋:課程(課程號,課程名,可能的先修課程); SC(Sno,Cno,Grade); 解釋:學生選課情況(學號,課程號,成績)
舉例: 1): 將查詢Student表的權利授予全體用戶————grant select on table Student to public 2): 將Student和Course表的所有權利授予u2和u3,其中包括Select,insert,update,delete,alter,index這六個權限————-grant all on table Student,Course to u2,u3 3): 將Student關系表的查詢權限和Sno屬性列的修改權限授予用戶u4——-grant update(Sno),select on table Student to u4 4): 將SC關系表的插入操作的權限授予u5并且u5可以將插入權限授予給其他用戶———-grant insert on table SC to u5 with grant option
當察覺到一個用戶對數據庫的操作的權限過大時,應該采取措施進行收回權限,以保證數據庫的正常運行
revoke <權限> [,<權限>]… [on <對象類型><對象名>] from <用戶>[,<用戶>]…
舉例: 1): 將更新Student關系表中的學號的權限從u4中收回——-revoke update(Sno) on table Student from u4 2): 將對Student關系表的插入權限從u5中收回————-revoke insert on table SC from u5 (如果創建時加with grant option,則刪除時將此權限也一并收回) 3): 將對SC關系表的查詢權限從全體用戶中收回————-revoke select on table SC from public
新聞熱點
疑難解答