ADServiceAccount в качестве учетной записи-посредника для агента SQL Server Для планирования пакетов служб SSIS из SSISDB

Я хочу использовать управляемую учетную запись ADServiceAccount, созданную с помощью следующей команды powershell, в качестве учетной записи-посредника для планирования и выполнения пакетов ssis:

New-ADServiceAccount -Name seraccname -Enable $true -DNSHostName domainname.local
Set-ADServiceAccount -Identity seraccname -PrincipalsAllowedToRetrieveManagedPassword  serv1.domainname.local
Install-ADServiceAccount seraccname 

Но когда я использую эту учетную запись как учетную запись в SQL Server. SSMS ожидает пароль и выдает эту ошибку.

"The secret stored in the password field is blank".

Однако учетные записи этого типа не имеют пароля, поскольку они управляются AD. Затем я подумал, что я был умным, и я использовал следующий код sql, чтобы принудительно создать учетные данные без пароля.

USE [master] 
GO
CREATE CREDENTIAL [seracccred] WITH IDENTITY = 'domainname.local\seraccname$'
GO

Затем я создал прокси с этими учетными данными, использовал его на этапе задания (запуск от имени). Но когда я выполняю этап задания, я получаю следующую ошибку.

Error authenticating proxy domainname.local\seraccname$, system error, username or password is incorrect

Я дал служебной учетной записи необходимые разрешения для работы с SSISDB. но я думаю дело не в этом. я не знаю, почему агент SQL Server или сервер SQL или что-то еще ожидает пароль. Я использую SQL Server 2012

Наконец, я хочу отметить, что я воспроизводю проблему, поэтому мне не нужно альтернативное решение. Я просто хочу использовать учетную запись управляемой службы Active Directory для выполнения шагов задания и пакетов ssis.

Я думаю, что я действительно что-то неправильно понимаю здесь, и об этом вообще нет документации, что странно, поскольку я считаю это очень подходящим вариантом использования для использования управляемой учетной записи службы AD, которая будет использоваться в качестве «запуска от имени» заданий ssis.


person Noobie    schedule 27.07.2018    source источник


Ответы (1)


Если бы пароль не требовался, то любой мог бы реализовать выполнение кода в контексте учетной записи с более высокими привилегиями.

Чтобы позволить агенту SQL Server выполнять код в контексте учетной записи-посредника, ему необходимо знать пароль, чтобы иметь возможность инициировать сеанс безопасности для этой учетной записи. Было бы ужасно, если бы для этого не требовался пароль. Вы видите, что управляемые учетные записи бесполезны в этом сценарии.

Но почему бы не запустить агент SQL Server под такой учетной записью управляемой службы?

person Wolfgang Kais    schedule 28.07.2018
comment
Спасибо за ваш комментарий, но параметр PrincipalsAllowedToRetrieveManagedPassword в Set-ADServiceAccount не должен определять, какие машины или группы домена могут использовать эту учетную запись без пароля, поскольку она управляется AD. - person Noobie; 29.07.2018
comment
Учетные данные прокси-аккаунта не используются для запуска службы, но вы пытаетесь использовать тип учетной записи, специально разработанный для сервисов. - person Wolfgang Kais; 29.07.2018