Развертывание базы данных с помощью 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, похоже, тайно получает разрешения в других местах.

Другие вопросы по тегам