授予对 SQL Server 登录名的权限。
语法
GRANT permission [ ,...n ] }
ON
{ [ LOGIN :: SQL_Server_login ]
| [ SERVER ROLE :: server_role ] }
TO <server_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
| server_role
参数
permission
指定可对 SQL Server 登录名授予的权限。 有关权限的列表,请参阅本主题后面的“备注”部分。
LOGIN
::SQL_Server_login
指定要对其授予权限的 SQL Server 登录名。 需要使用作用域限定符 (::)。
SERVER ROLE
::server_role
指定要授予权限的用户定义服务器角色。 需要使用作用域限定符 (::)。
TO <server_principal> 指定要向其授予权限的 SQL Server 登录名或服务器角色。
SQL_Server_login
指定 SQL Server 登录帐户的名称。
SQL_Server_login_from_Windows_login
指定通过 Windows 登录帐户创建的 SQL Server 登录帐户的名称。
SQL_Server_login_from_certificate
指定映射到证书的 SQL Server 登录帐户的名称。
SQL_Server_login_from_AsymKey
指定映射到非对称密钥的 SQL Server 登录帐户的名称。
server_role
指定用户定义的服务器角色的名称。
附 GRANT 选项
指示该主体还可以向其他主体授予所指定的权限。
AS SQL_Server_login
指定执行此查询的主体要从哪个 SQL Server 登录名派生其授予该权限的权限。
备注
只有在当前数据库为 master 时,才可授予其服务器作用域内的权限。
可以在 sys.server_permissions 目录视图中查看服务器权限的相关信息。 可以在 sys.server_principals 目录视图中查看服务器主体的相关信息。
SQL Server 登录名和服务器角色是服务器级安全对象。 下表列出了可向 SQL Server 登录名或服务器角色授予的最具体的限定权限,以及隐含这些权限的更一般的权限。
| SQL Server 登录名或服务器角色权限 | SQL Server 登录名或服务器角色权限隐含的权限 | 服务器权限隐含的权限 |
|---|---|---|
| CONTROL | CONTROL | 控制服务器 |
| IMPERSONATE | CONTROL | 控制服务器 |
| VIEW 定义 | CONTROL | VIEW 任何定义 |
| ALTER | CONTROL | 更改任意 LOGIN 更改任意 SERVER ROLE |
权限
登录时,需要登录时的CONTROL权限,或者服务器上的ALTER任何 LOGIN 权限。
对于服务器角色,需要对服务器角色使用CONTROL权限,或者在服务器上更改任何 SERVER ROLE 权限。
示例
A. 授予对登录名的 IMPERSONATE 权限
以下示例对通过 Windows 用户 IMPERSONATE 创建的 SQL Server 登录名授予对 SQL Server 登录名 WanidaBenshoof 的 AdvWorks\YoonM 权限。
USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO
B. 授予 VIEW 带有 GRANT OPTION的定义权限
下面的示例将 SQL Server 登录名 VIEW DEFINITION 上的 EricKurjan 授予具有 RMeyyappan 的 SQL Server 登录名 GRANT OPTION。
USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
WITH GRANT OPTION;
GO
C. 对服务器角色授予 VIEW DEFINITION权限
以下示例向 VIEW DEFINITION 服务器角色授予对 Sales 服务器角色的 Auditors 权限。
USE master;
GRANT VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;
GO
另请参阅
sys.server_principals(Transact-SQL)
sys.server_permissions(Transact-SQL)
CREATE LOGIN (Transact-SQL)
主体(数据库引擎)
权限(数据库引擎)
安全函数 (Transact-SQL)
安全存储过程 (Transact-SQL)