sp_grant_proxy_to_subsystem (Transact-SQL)

适用范围:SQL Server

授权代理访问子系统。

Transact-SQL 语法约定

语法

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