sp_add_proxy (Transact-SQL)
添加指定 SQL Server 代理的代理帐户。
语法
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