Вызов sqlcmd из хранимой процедуры без учетных данных - PullRequest
0 голосов
/ 09 июля 2020

У меня есть хранимая процедура под SQL Server 2012 Standard, которая вызывает sqlcmd через xp_cmdshell для выполнения файлов сценария для базы данных. Это всегда нормально работало без передачи учетных данных и без опции -E. Теперь в текущей версии SQLExpress я получаю сообщение об ошибке «Ошибка аутентификации для 'mydomain \ mymachine $'» при вызове sqlcmd из хранимой процедуры. Похоже, что в SQL 2012 sqlcmd вызывается в контексте NT Service \ MSSQLSERVER, а в SQLExpress 2019 он вызывается в контексте локального компьютера, хотя служба работает под NT Service \ MSSQL $ SQLExpress. Добавление переключателя -E в sqlcmd не помогает, также не помогает создание логина для учетной записи локального компьютера. Любая идея, как я могу заставить это работать без необходимости указывать учетную запись и пароль для sqlcmd?

1 Ответ

0 голосов
/ 09 июля 2020

Я забыл указать экземпляр сервера с ключом -S. На предыдущем сервере был только экземпляр сервера sql по умолчанию, так что это никогда не было проблемой. Но на моей тестовой машине есть экземпляр по умолчанию + экземпляр SQLExpress. Итак, sqlcmd пытался подключиться к локальному стандартному экземпляру вместо экземпляра SQLExpress.

...