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