sqlpackage.exe
을 AWS CodeDeploy에서 실행되는 스크립트에서 실행하려고합니다.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는 Local System
계정으로 실행되는 Windows 서비스로 실행되며 여기서 내 작동 명령 프롬프트는 Administrator
계정으로 실행됩니다. 이것은 유일한 차이점이므로 사용 권한 문제 여야합니다.
dacpac은 sysadmin
권한을 가진 사용자가 설치해야합니다. SQL Server 사용자 NT AUTHORITY\SYSTEM
에 DBCreator
역할을 설정하려고 테스트했습니다.
다음 오류 때문에 배포가 실패했습니다.
그러나 진행 방법은 확실하지 않습니다. 나는 NT AUTHORITY\SYSTEM
을 SysAdmin
으로 만드는 것은 나쁜 생각이라고 생각합니다!