授予对存储过程的权限

适用于: 是SQL Server(所有支持的版本) 是Azure SQL 数据库 是Azure SQL 托管实例 是Azure Synapse Analytics 是并行数据仓库

本文说明如何使用 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 AdventureWorks2012;   
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO  

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

  1. 连接到 数据库引擎。

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

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

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

后续步骤