【发布时间】:2017-01-01 22:21:44
【问题描述】:
我正在尝试从 AWS CodeDeploy 执行的脚本运行 sqlpackage.exe。
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 帐户下运行。这是唯一的区别,所以我认为这一定是权限问题。
似乎需要由具有sysadmin 权限的用户安装 dacpac。我尝试(作为测试)将 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 变成SysAdmin 是个坏主意!
【问题讨论】:
标签: amazon-web-services sql-server-data-tools aws-code-deploy sqlpackage