sp_add_proxy (Transact-SQL)

适用于:SQL Server

添加指定的SQL Server 代理代理。

Transact-SQL 语法约定

语法

sp_add_proxy
    [ @proxy_name = ] 'proxy_name'
    , [ @enabled = ] is_enabled
    , [ @description = ] 'description'
    , [ @credential_name = ] 'credential_name'
    , [ @credential_id = ] credential_id
    , [ @proxy_id = ] id OUTPUT
[ ; ]

参数

[ @proxy_name = ] 'proxy_name'

要创建的代理的名称。 @proxy_name为 sysname,默认值为 NULL. 当@proxy_name为 NULL 或空字符串时,代理的名称默认为提供的@credential_name@credential_id

[ @enabled = ] is_enabled

指定是否启用代理。 @enabled标志为 tinyint,默认值为 1. 当@enabled0时,代理未启用,作业步骤不能使用。

[ @description = ] 'description'

代理说明。 说明为 nvarchar(512),默认值为 NULL. 使用说明可以记录代理,但SQL Server 代理不会使用其他说明。 因此,该参数是可选的。

[ @credential_name = ] 'credential_name'

代理凭据的名称。 @credential_namesysname,默认值为 NULL. 必须指定@credential_name@credential_id

[ @credential_id = ] credential_id

代理帐户的标识号。 @credential_idint,默认值为 NULL. 必须指定@credential_name@credential_id

[ @proxy_id = ] proxy_id OUTPUT

成功创建代理时分配给代理的代理标识号。

返回代码值

0(成功)或 1(失败)。

结果集

无。

注解

必须在数据库中运行 msdb 此存储过程。

SQL Server 代理代理管理涉及 Transact-SQL 子系统以外的子系统的作业步骤的安全性。 每个代理对应于一个安全凭据。 代理可以访问任何数量的子系统。

权限

此存储过程由 db_owner 角色拥有。 你可以为任何用户授予 EXECUTE 权限,但这些权限可能会在 SQL Server 升级期间被重写。

sysadmin 固定安全角色的成员可以创建使用任何代理的作业步骤。 使用存储过程 sp_grant_login_to_proxy(Transact-SQL) 授予对代理的其他登录名的访问权限。

示例

该示例为 CatalogApplicationCredential 凭据创建一个代理。 代码假定凭据已经存在。 有关凭据的详细信息,请参阅 CREATE CREDENTIAL (Transact-SQL)。

USE msdb;
GO

EXEC dbo.sp_add_proxy
    @proxy_name = 'Catalog application proxy',
    @enabled = 1,
    @description = 'Maintenance tasks on catalog application.',
    @credential_name = 'CatalogApplicationCredential';
GO