sp_grant_proxy_to_subsystem (Transact-SQL)
适用范围:SQL Server
授权代理访问子系统。
语法
sp_grant_proxy_to_subsystem
[ [ @proxy_id = ] proxy_id ]
[ , [ @proxy_name = ] N'proxy_name' ]
[ , [ @subsystem_id = ] subsystem_id ]
[ , [ @subsystem_name = ] N'subsystem_name' ]
[ ; ]
参数
[ @proxy_id = ] proxy_id
授予访问权限的代理的代理标识号。 @proxy_id为 int,默认值为 NULL
.
必须指定@proxy_id或@proxy_name,但不能指定这两者。
[ @proxy_name = ] N'proxy_name'
要授予访问权限的代理的名称。 @proxy_name为 sysname,默认值为 NULL
.
必须指定@proxy_id或@proxy_name,但不能指定这两者。
[ @subsystem_id = ] subsystem_id
要向其授予访问权限的子系统的 ID 号。 @subsystem_id为 int,默认值为 NULL
.
必须指定@subsystem_id或@subsystem_name,但不能指定两者。
下表列出了每个子系统的值。
值 | 说明 |
---|---|
2 |
ActiveX 脚本 1 |
3 |
操作系统 (CmdExec ) |
4 |
Replication Snapshot Agent |
5 |
复制日志读取器代理 |
6 |
Replication Distribution Agent |
7 |
Replication Merge Agent |
8 |
复制队列读取器代理 |
9 |
Analysis Services 查询 |
10 |
Analysis Services 命令 |
11 |
SSIS 包执行 |
12 |
PowerShell 脚本 |
1 将在 SQL Server 的未来版本中删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
[ @subsystem_name = ] N'subsystem_name'
授予访问权限的子系统的名称。 @subsystem_name为 sysname,默认值为 NULL
.
必须指定@subsystem_id或@subsystem_name,但不能指定两者。
下表列出了每个子系统的值。
值 | 说明 |
---|---|
ActiveScripting |
ActiveX 脚本 |
CmdExec |
操作系统 (CmdExec ) |
Snapshot |
Replication Snapshot Agent |
LogReader |
复制日志读取器代理 |
Distribution |
Replication Distribution Agent |
Merge |
Replication Merge Agent |
QueueReader |
复制队列读取器代理 |
ANALYSISQUERY |
Analysis Services 查询 |
ANALYSISCOMMAND |
Analysis Services 命令 |
Dts |
SSIS 包执行 |
PowerShell |
PowerShell 脚本 |
注解
授予对子系统的代理访问权限不会更改代理中指定的主体的权限。
权限
此存储过程由 db_owner 角色拥有。 你可以为任何用户授予 EXECUTE
权限,但这些权限可能会在 SQL Server 升级期间被重写。
示例
A. 按 ID 授予对子系统的访问权限
以下示例授权代理 Catalog application proxy
访问 ActiveX Scripting 子系统。
USE msdb;
GO
EXEC dbo.sp_grant_proxy_to_subsystem
@proxy_name = 'Catalog application proxy',
@subsystem_id = 2;
GO
B. 按名称授予对子系统的访问权限
以下示例授权代理 Catalog application proxy
访问 SSIS 包执行子系统。
USE msdb;
GO
EXEC dbo.sp_grant_proxy_to_subsystem
@proxy_name = N'Catalog application proxy',
@subsystem_name = N'Dts' ;
GO