天天看點

SQL Server中授予使用者檢視對象定義的權限

<b>SQL Server中授予使用者檢視對象定義的權限</b>

<b> </b>

在SQL Server中,有時候需要給一些登入名(使用者)授予檢視所有或部分對象(存儲過程、函數、視圖、表)的定義權限存。如果是部分存儲過程、函數、視圖授予檢視定義的權限,那麼就像下面腳本所示,比較繁瑣:

GRANT VIEW DEFINITION ON  YOUR_PROCEDURE TO   USERNAME;

GRANT VIEW DEFINITION ON  YOUR_FUNCTION TO USERNAME;

GRANT VIEW DEFINITION ON  YOUR_VIEW TO USERANEM;

.....................................................

如果是批量授權,那麼可以使用下面腳本生成授權腳本。然後執行生成的腳本:

如果你想直接執行腳本,不想生成授權腳本,那麼可以使用下面腳本實作授權。當然前提是你選擇所要授權的資料庫(USE DatabaseName)

如果單個使用者授權,那麼使用上面方法已經OK,但是一個系統,經常遇到這種授權情況,那麼使用上面方法也會變得非常繁瑣;另外,當新增表、視圖、存儲過程後,又需要修改相關授權腳本,這樣變得非常麻煩繁瑣,那麼可以建立一個資料庫角色,授予檢視資料庫對象定義的權限,然後建立登入名時,将這個資料庫角色授予建立的登入名即可。這樣以後即使有權限啥變化,隻需要調整資料庫角色的權限即可,不需修改登入名。對于重複性的授權工作會變得非常友善、簡單。例如,需要給建立的登入名kerry授予檢視資料庫對象定義的權限,那麼首先建立資料庫角色View_Definiton,然後将檢視定義的權限授予資料庫角色View_Definiton,最後,建立了登入名kerry後,隻需将角色View_Definiton授予kerry即可。

SQL Server中授予使用者檢視對象定義的權限

ALTER ROLE [View_Definiton] ADD MEMBER [kerry]

GO