授予对存储过程的权限

适用于SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 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. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 该示例授予名为 EXECUTE 的应用程序角色对存储过程 HumanResources.uspUpdateEmployeeHireInfoRecruiting11权限。

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

若要授予对架构中所有存储过程的权限

  1. 连接到 数据库引擎。

  2. 在标准栏上,选择“新建查询”。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例向名为 Recruiting11 的应用程序角色授予对 HumanResources 架构中已存在或将存在的所有存储过程的 EXECUTE 权限。

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

后续步骤