База данных SQL Azure - невозможно удалить / обновить зарегистрированный dacpac, если не подключен как администратор SQL - PullRequest
1 голос
/ 02 июля 2019

Это может быть проблема с базами данных Azure, но я надеюсь, что есть решение.

При создании базы данных SQL в Azure на сервере есть учетная запись администратора SQL, которая настроена в этомслучай, вручную через портал при инициализации.Это может быть только пользователь, прошедший проверку подлинности SQL.

И, конечно, у меня также есть группа / пользователь AAD, настроенная в качестве администратора AD.

Я также настроил автоматическое развертывание с использованием SSDT,Проблема возникает, когда я пытаюсь зарегистрировать DACPAC как часть развертывания, но только после первого развертывания, если я использую учетную запись AD для развертывания.Он пытается обновить зарегистрированное приложение уровня данных, но получает сообщение о том, что оно уже существует.Если вместо этого я развернусь с пользователем SQL Admin, прошедшим проверку подлинности SQL, то он будет успешно развернут.

По нескольким причинам я хочу выполнить развертывание с использованием учетной записи AD, не в последнюю очередь для создания других пользователей AD., чего не может сделать пользователь, прошедший проверку подлинности SQL.

В процессе некоторых действий я могу удалить зарегистрированный dacpac в SSMS, если я подключен как пользователь SQL, но когда я пытаюсь это сделатьс пользователем AD я получаю:

Текущий пользователь не имеет достаточных прав на экземпляре SQL Server для удаления приложения уровня данных.Пользователь должен быть владельцем базы данных базы данных, связанной с приложением уровня данных.

Я знаю, что информация приложения уровня данных хранится в базе данных виртуального мастера.например,

select * [master].[dbo].[sysdac_history_internal] 
select * [master].[dbo].[sysdac_instances_internal]

Похоже, вам нужно иметь db_owner в базе данных master для работы с ЦАПами таким образом, но единственным пользователем, который может быть db_owner, является SQL-аутентифицированный администратор SQL.

Поэтому, если я не смогу создать автономного пользователя AD, который сможет это сделать, я не думаю, что смогу использовать регистрацию dacpac, что является настоящим позором, так как обнаружение дрейфа является реальным продавцом использования SSDT.

Если кто-нибудь знает, как с этим справиться, я был бы очень рад это услышать.

...