Развертывание базы данных с помощью VSDBCMD.exe, не использующего встроенную защиту
Я пытаюсь развернуть проект базы данных Visual Studio (GDR R2) с помощью утилиты VSDBCMD.exe. Я могу успешно выполнить развертывание, когда строка подключения использует Integrated Security, но когда я переключаюсь на использование аутентификации Sql Server, я получаю следующую ошибку:
Не удалось импортировать целевую модель MyCatalog. Подробное сообщение Операция обратного инженера не может быть продолжена, поскольку у вас нет разрешения на просмотр определения в базе данных "MyCatalog".
Я могу успешно развернуть, используя Sql Server аутентификацию при развертывании через Visual Studio.
Вот команда, которую я использую для запуска:
vsdbcmd
/a:deploy
/dsp:sql
/dd-
/cs:"Data Source=localhost;Initial Catalog=MyCatalog;User ID=MyUserId;Password=MyPassword"
/script:C:\MyDbScriptFile.sql
/manifest:C:\Database.deploymanifest
/p:DeploymentConfigurationFile=C:\Database.sqldeployment
/p:SqlCommandVariablesFile=C:\Database.sqlcmdvars
Все параметры указаны в отдельных строках только для удобства отображения. Опять же, когда я изменяю строку подключения на Integrated Security, она работает.
При запуске Sql Server Profiler для Visual Studio и VSDBCMD.exe отображаются только подключения только для MyUserId. Visual Studio не использует другую учетную запись. Но выполняемые запросы разные. Думаю, меня не должно удивлять то, что инструменты ведут себя по-разному.
Я не хочу добавлять определенные разрешения View Definition для пользователя, пока не выясню, почему я могу сделать это успешно через Visual Studio.
Благодарю.
1 ответ
Grant View Definition заставляет его работать. Visual Studio, похоже, тайно получает разрешения в других местах.