Выполнение Sql со встроенной безопасностью через TeamCity завершается ошибкой при входе пользователя в систему

У меня есть сценарий MSBuild, который использует команду MSBuildExtensions SqlExecute, аналогичную следующей:

<Target Name="DoSqlStuff">
    <SqlExecute TaskAction="Execute"
                UseTransaction="True"
                ConnectionString="Data Source=$(Sql_ServerName); Initial Catalog=$(Sql_DatabaseName); Integrated Security=SSPI;"
                Files="@(sqlFiles)"
                CommandTimeout="1800">
    </SqlExecute>
</Target>

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

У меня есть агент сборки TeamCity, настроенный на ту же машину, которая может успешно запустить этот сценарий MSBuild (со всеми введенными переменными) из командной строки, и я получаю следующую ошибку:

[MSBuild output] C:\BuildAgent\work\c5affefc453a825c\ContinuousBuild\Deploy.proj(22,3): error : SqlException: Login failed for user 'ALLIANCE\DANIELM$'. [C:\BuildAgent\work\c5affefc453a825c\ContinuousBuild\Deploy.proj.teamcity]

Я добавил к этой задаче отладочный вывод:

<Message Text="Current user is $(USERNAME)" />
<Message Text="Current domain is $(USERDOMAIN)" />

При запуске через cmd имя пользователя danielm

При запуске через TeamCity имя пользователя danielm$

Домен у обоих одинаковый.

Что я делаю неправильно или какие следующие шаги мне нужно выполнить, чтобы получить больше информации?


person DMac the Destroyer    schedule 13.03.2013    source источник
comment
Агент работает от имени пользователя вашего домена?   -  person John Hoerr    schedule 14.03.2013


Ответы (1)


Спустя смущающее количество времени я понял это.

Служба TeamCity Build Agent была настроена на вход в систему с учетной записью локальной системы.

Я зашел в Службы, щелкнул правой кнопкой мыши Агент сборки TeamCity -> Свойства.

Вкладка «Вход в систему», затем щелкните переключатель «Войти в систему как «Эта учетная запись»» и установите мои учетные данные.

Настройка службы для входа в качестве моей учетной записи пользователя предоставила сценарию MsBuild правильные разрешения для входа в систему со встроенной безопасностью.

В конце концов, мы создадим пользователя для этой цели, когда он будет готов к запуску.

person DMac the Destroyer    schedule 13.03.2013