sp_add_proxy (Transact-SQL)
适用于:SQL Server
添加指定的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 或空字符串时,代理的名称默认为 提供的@credential_name 或 @credential_id 。
[ @enabled = ] is_enabled
指定是否启用代理。 @enabled标志为 tinyint,默认值为 1
。 当 @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 = ] 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