程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> GRANT用法簡介

GRANT用法簡介

編輯:關於SqlServer

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語句。現在重新執行sp_helpprotect,最後三行應該顯示皮特以及他剛才所獲得授權的信息。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved