向主体授予权限
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric SQL 数据库
本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 向 SQL Server 中的主体授予权限。
安全性
授权者(或使用 AS 选项指定的主体)必须具有使用 GRANT OPTION 授予的权限本身,或具有隐含授予该权限的更高权限。
使用 SQL Server Management Studio
向主体授予权限
在“对象资源管理器”中,展开包含您要授予权限的对象的数据库。
注意
这些步骤仅针对向存储过程授予权限,但您可以使用类似的步骤向表、视图、函数和程序集以及其他安全对象添加权限。 有关详细信息,请参阅 GRANT (Transact-SQL)
展开 “可编程性” 文件夹。
展开 “存储过程” 文件夹。
右键单击某一存储过程,然后选择“属性”。
在 “存储过程属性 ”对话框中,选择“ 权限 ”页。 使用此页可以将用户或角色添加到存储过程以及指定这些用户或角色所具有的权限。
完成后,选择“确定”。
使用 Transact-SQL
向主体授予权限
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 以下示例向调用
Recruiting11
的应用程序角色授予对HumanResources.uspUpdateEmployeeHireInfo
存储过程的 EXECUTE 权限。-- Grants EXECUTE permission on stored procedure HumanResources.uspUpdateEmployeeHireInfo to an application role called Recruiting11. USE AdventureWorks2022; GO GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo TO Recruiting11; GO
有关详细信息,请参阅 GRANT(Transact-SQL)和 GRANT 对象权限(Transact-SQL)。
限制
请考虑以下可以使管理权限更简单的最佳做法。
将权限授予角色,而不是单独的登录名或用户。 当某个用户由其他人取代时,可从角色中删除离开的用户,并向角色中添加新用户。 与该角色关联的许多权限都将自动应用于新用户。 如果组织中的多个用户需要相同的权限,将他们都添加到角色即可为他们授予相同的权限。
对类似的安全对象(表、视图和过程)进行配置,使它们属于同一个架构,然后向架构授予权限。 例如,工资架构可能拥有多个表、视图和存储过程。 通过授予针对该架构的访问权限,可以同时授予执行工资功能所需的所有权限。 有关可向哪些安全对象授予权限的详细信息,请参阅 Securables。
在 Microsoft Fabric 中的 SQL 数据库中,Microsoft数据库用户的 Entra ID 是唯一支持的身份验证方法。 服务器级角色和权限不可用,仅数据库级别。 有关详细信息,请参阅 Microsoft Fabric 中的 SQL 数据库中的授权。