Я пытаюсь запустить sqlpackage.exe
из сценария, выполняемого AWS CodeDeploy.Запуск sqlpackage.exe из AWS CodeDeploy вызывает исключение
Команда sqlpackage
работает нормально из локальной подсказки CMD при входе в систему как администратор, но не запускается при вызове как часть конвейера CodeDeploy.
Следующая ошибка:
An unexpected failure occurred: DacInstance with the specified instance_id does not exist..
Unhandled Exception: System.Data.SqlClient.SqlException: DacInstance with the specified instance_id does not exist.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
Казалось бы, что соединение не может быть сделано в базу данных.
CodeDeploy работает как служба Windows, работающая под учетной записью Local System
, где в качестве моей командной строки, где это работает, работает под учетной записью Administrator
. Это единственное различие, поэтому я думаю, что это должно быть проблемой разрешения.
Похоже, что dacpac должен быть установлен пользователем с привилегиями sysadmin
. Я попытался (как тест) установить для пользователя SQL Server NT AUTHORITY\SYSTEM
роль DBCreator
.
После этого произошла ошибка при следующей ошибке.
The database settings cannot be modified. You must be a SysAdmin to apply these settings.
The database settings cannot be modified. You must be a SysAdmin to apply these settings.
An error occurred while the batch was being executed.
Updating database (Failed)
Я не уверен, как действовать дальше. Я предполагаю, что создание NT AUTHORITY\SYSTEM
a SysAdmin
- плохая идея!