因個人對數據庫授權命令的喜愛,所以寫了這篇文章,一來學會命令的使用,
二來為以后復習之用。
---------------------------------------------------------------------------------------------------------------------
1)授權命令 grant,語法格式(SQL語句不區分大小寫):
Grant <權限> on 表名[(列名)] to 用戶 With grant option
或 GRANT <權限> ON <數據對象> FROM <數據庫用戶>
//數據對象可以是表名或列名
//權限表示對表的操作,如select,update,insert,delete
注:授權命令是由數據庫管理員使用的,若給用戶分配權限時帶With grant option子句,
則普通用戶獲權后,可把自己的權限授予其他用戶。
Grant單詞翻譯:
vt.承認;同意;准許;授予
n.撥款;補助金;授給物(如財產、授地、專有權、補助、撥款等)
vi.同意
2)回收權限 revoke
REVOKE <權限> ON <數據對象> FROM <數據庫用戶名>
revoke翻譯:
vt.撤銷,取消;廢除 vi.有牌不跟 n.有牌不跟
實戰:
因機房裝的是SQL2000,因此我測試時使用的是SQL2000
1) 首先我在服務器(local)上添加了一個用戶user1,並將其添加了數據庫student,
其擁有的權限為public(public為最小權限),截圖如下:
數據庫student中的表如下圖所示,其中有一張表為student(下圖第四個)
當我們沒有給用戶 user1分配查詢(select)權限時,在查詢分析器中用user1登陸數據庫student,
其連最基本的查詢操作都不能執行,截圖如下:
下面我們用授權命令grant給user1添加查詢的權限(注意要用管理員賬戶才能執行以下命令),
截圖如下:
將查詢操作授權給user1后,用user1再次執行select命令,發現已經可以查詢數據了,
截圖如下:
當我們想除去用戶user1的查詢操作時,執行以下命令即可
//回收用戶user1對表student的查詢權限
revoke select on student from user1
//或 revoke select on student from user1 cascade