Cod*_*ody 5 t-sql sql-server sql-agent sql-server-2016
我在尝试在 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;
Run Code Online (Sandbox Code Playgroud)
这将创建凭证和代理。
但是,它无法将凭据正确添加到代理。当尝试手动(使用 UI)添加凭据时,我收到以下错误:
ProxyAccount“yyy”(Microsoft.SqlServer.Smo) 的更改失败附加信息:未将对象引用设置为对象的实例。(微软.SqlServer.Smo)
我尝试删除凭据并重新添加它,但没有结果。我尝试删除并重新添加代理,但收到以下错误:
未定义代理的凭据名称。(SqlManagerUI)
这可以追溯到无法为该代理分配凭证。
我发现这个链接似乎可以解决该问题。我不太确定它是如何工作的,但我的问题已经消失了。
USE [msdb]
GO
EXEC msdb.dbo.sp_update_proxy @proxy_name = N'yyy'
,@credential_name = N'xxx'
,@description = N''
GO
Run Code Online (Sandbox Code Playgroud)