Alter的ProxyAccount'yyy'失败(Microsoft.SqlServer.Smo)

时间:2019-03-06 17:09:31

标签: sql-server tsql sql-server-2016 sql-agent

尝试在Microsoft SQL Server Management Studio中创建凭据和相关代理的脚本时遇到问题。

我的脚本如下:

CREATE CREDENTIAL xxx WITH IDENTITY = 'domain\xxx', SECRET = '*******';

EXEC msdb.dbo.sp_add_proxy @proxy_name  = 'yyy' 
,@enabled = 1 
,@description = 'description here'
,@credential_name = 'xxx'

EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name = 'yyy'
,@subsystem_id = 9;

这将同时创建证书和代理。

但是,它无法将凭据正确添加到代理。尝试手动(使用UI)添加凭据时,出现以下错误:

  

对于ProxyAccount'yyy'(Microsoft.SqlServer.Smo)的更改失败   附加信息:       你调用的对象是空的。 (Microsoft.SqlServer.Smo)

Attempt to add credential

Error message

我尝试删除凭据,然后重新添加它,但没有结果。我尝试删除并重新添加代理,但是收到以下错误:

  

未定义代理的凭据名称。 (SqlManagerUI)

回溯到无法为该代理分配凭据。

1 个答案:

答案 0 :(得分:1)

我发现此链接似乎可以解决此问题。我不太确定它是如何工作的,但是我的问题不见了。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ecabf8d5-5910-4c6a-90af-c4219a0c3418/msg-14529-on-spupdateproxy?forum=sqlsecurity

USE [msdb]
GO

EXEC msdb.dbo.sp_update_proxy @proxy_name = N'yyy'
    ,@credential_name = N'xxx'
    ,@description = N''
GO