授與預存程序的權限

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

本文描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中授與預存程序的權限。 權限可以授與資料庫中現有的使用者、資料庫角色或應用程式角色。

限制事項

  • 您無法使用 SQL Server Management Studio,授與系統程序或系統函數的權限。 請改用 GRANT 物件權限

權限

同意授權者 (或是指定了 AS 選項的主體) 必須具有指定了 GRANT OPTION 的權限本身,或是具有隱含目前正在授與權限的更高權限。 需要程序所屬結構描述的 ALTER 權限,或程序的 CONTROL 權限。 如需詳細資訊,請參閱 GRANT 物件權限 (Transact-SQL)

使用 SQL Server Management Studio

若要授與預存程序的權限

  1. 在 [物件總管] 中,連線到資料庫引擎的執行個體,然後展開該執行個體。

  2. 依序展開 [資料庫] 、程序所屬的資料庫,以及 [可程式性]

  3. 展開 [預存程序]以滑鼠右鍵按一下要授與權限的程序,然後選取 [屬性]。

  4. [預存程序屬性] 上選取 [權限] 頁面。

  5. 若要將權限授與使用者、資料庫角色或應用程式角色,請選取 [搜尋]。

  6. 在 [選取使用者或角色]中,選取 [物件類型],以新增或清除您所需的使用者和角色。

  7. 選取 [瀏覽] 以顯示使用者或角色的清單。 選取要獲得權限授與的使用者或角色。

  8. [明確權限] 方格中,選取要授與指定使用者或角色的權限。 如需權限的描述,請參閱權限 (資料庫引擎)

選取 [授與] 表示要將指定的權限提供給被授與者。 選取 [可授與] 則表示授與者也能夠將指定的權限授與給其他主體。

使用 Transact-SQL

若要授與預存程序的權限

  1. 連線至資料庫引擎。

  2. 在標準列上,選取 [新增查詢]。

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 此範例會將預存程序 EXECUTEHumanResources.uspUpdateEmployeeHireInfo 權限授與名為 Recruiting11的應用程式角色。

USE AdventureWorks2022;   
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO  

授與結構描述中所有預存程序的權限

  1. 連線至資料庫引擎。

  2. 在標準列上,選取 [新增查詢]。

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 本範例會將存在於或將存在於 HumanResources 結構描述的所有預存程序的 EXECUTE 權限授與名為 Recruiting11 的應用程式角色。

USE AdventureWorks2022;   
GRANT EXECUTE ON SCHEMA::HumanResources
    TO Recruiting11;  
GO  

下一步