sp_add_proxy (Transact-SQL)

添加指定 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 或一个空字符串时,代理名称默认为所提供的 user_name。

  • [ @enabled = ] is_enabled
    指定是否启用代理。 is_enabled 标志的数据类型为 tinyint,默认值为 1。 当 is_enabled 为 0 时,将不启用代理,并且作业步骤无法使用代理。

  • [ @description= ] 'description'
    代理说明。 该说明的数据类型为 nvarchar(512),默认值为 NULL。 该说明便于您记录代理,而 SQL Server 代理不会在其他地方使用该说明。 因此,该参数是可选的。

  • [ @credential_name = ] 'credential_name'
    代理凭据的名称。 credential_name 的数据类型为 sysname,默认值为 NULL。 必须指定 credential_name 或 credential_id。

  • [ @credential_id = ] credential_id
    代理帐户的标识号。 credential_id 的数据类型为 int,默认值为 NULL。 必须指定 credential_name 或 credential_id。

  • [ @proxy_id= ] id OUTPUT
    成功创建代理时分配给代理的代理标识号。

返回代码值

0(成功)或 1(失败)

结果集

注释

必须从 msdb 数据库运行该存储过程。

SQL Server Agent 代理的代理帐户用于管理作业步骤的安全性,这些作业步骤涉及除 Transact-SQL 子系统以外的其他子系统。 每个代理对应于一个安全凭据。 代理可以访问任何数量的子系统。

权限

只有 sysadmin 固定安全角色的成员才可以执行此过程。

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

请参阅

参考

CREATE CREDENTIAL (Transact-SQL)

sp_grant_login_to_proxy (Transact-SQL)

sp_revoke_login_from_proxy (Transact-SQL)