


SQL Server的GRANT用法簡介
SQL Server 2000的GRANT語句用于向用戶、角色和組授予使用數據庫對象以及運行某些存儲過程和函數的權限。
GRANT的語法非常簡單——雖然它是SQL Server 2000中功能最強大的語句之一。下面的例子授予皮特(Pete)對pubs數據庫中的authors表進行 INSERT、UPDATE和DELETE的權限。WITH GRANT OPTION表示皮特也可以用這些語句來向其它用戶授權。USE pubs
GO
GRANT INSERT, UPDATE, DELETE
ON authors
TO Pete
WITH GRANT OPTION
GO
你也可以授予皮特ALL權限,這樣他還可以使用CREATE DATABASE、CREATE FUNCTION、CREATE RULE、CREATE TABLE、BACKUP DATABASE以及其它語句。不過,我們一般都希望限制用戶的訪問和操作數據庫的權限。
除了對單獨的用戶外,你還可以對SQL Server角色、Windows NT用戶以及Windows NT組使用GRANT語句。如果用戶和(或者)組或者角色之間存在授權沖突,那么按照最嚴格的授權處理。不能對其它數據庫的用戶、角色或者組進行授權。
你可以用REVOKE語句來解除已經授予的權限。你也可以用DENY語句來停止阻止用戶從他(她)所從屬的組(或者角色)那里來得到授予該組(或者角色)的權限。
在下面的例子中,我們將會看到擁有pubs數據庫中的authors表權限的人有哪些。然后,我們給予皮特訪問數據庫的權限。最后,我們再給他對authors表執行INSERT、UPDATE和DELETE的權限。
首先,我們運行sp_helpprotect來看看authors表格上哪些人有哪些權限。
Exec sp_helprotect authors
GO
結果應該與下面類似:
Owner Object Grantee Grantor ProtectType Action Column
----- ------ ------- ----------- ------------- --------- -------
dbo authors guest dbo Grant Delete
dbo authors guest dbo Grant Insert
dbo authors guest dbo Grant References (All+New)
dbo authors guest dbo Grant Select (All+New)
dbo authors guest dbo Grant Update (All+New)
由于在皮特得到訪問數據庫的權限之前,我們不能向他授以執行任何語句的權限,因此,我們應該首先讓皮特獲得訪問數據庫的權限。(實際上,為了可以使用已授予的權限,皮特需要一個SQL Server 2000登錄帳號和訪問該數據庫的許可。這個例子為一個SQL Server 2000中尚未存在的用戶創建訪問數據庫的許可。)
EXEC sp_grantdbaccess Pete
GO
你將會看到“Granted database access to 'Pete”。
讓我們運行較早前提到的GRANT INSERT, UPDATE, DELETE語句,F在重新執行sp_helpprotect,最后三行應該顯示皮特以及他剛才所獲得授權的信息。
關鍵字:SQL Server、數據庫、GRANT
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解