Расширенные настройки развертывания: удаление, игнорирование и исключение при неработающем ПОЛЬЗОВАТЕЛЕ

Мы используем проект SSDT в Visual Studio для управления моими развертываниями SqlServer. Мы создаем файл dacpac и отправляем его нашим клиентам.
Затем они обновляют свою БД, используя опцию «Сервер Sql> Задача> Обновить приложение уровня данных».

При этом мы обнаружили, что он удаляет всех пользователей, которых нет в dacpac, но есть в SqlServer DB. (хотя пользователи не отключаются - если мы используем инструмент командной строки SqlPackage.exe)

Чтобы предотвратить это падение, мы реализуем настройку «Отбросить, игнорировать и исключить» в настройках предварительного развертывания в проекте SSDT Visual Studio. Но это, похоже, не работает.

Игнорировать и исключить настройки  Отбросить настройки

Я что-то упускаю?
Как предотвратить сброс USER?

Версия SQL Server:
Microsoft SQL Server Management Studio 12.0.4213.0
Компоненты доступа к данным Microsoft (MDAC) 6.3.9600.17415
Microsoft .NET Framework 4.0.30319.42000
Операционная система 6.3.9600


person user875123    schedule 06.09.2016    source источник


Ответы (2)


Лучше всего упаковать все это для пользователей с помощью профиля публикации, настроенного так, чтобы не отбрасывать пользователей, а также для того, чтобы они могли легко использовать SQLPackage для внесения изменений. Я знаю, что сейчас есть пакет NuGet, содержащий DacFX, и Эд Эллиотт написал кое-что об использовании его в PowerShell здесь: https://the.agilesql.club/blogs/Ed-Elliott/DacFxed-Nugetized-DacFx-Powershell-Wrapper (см. Решение 3)

person Peter Schott    schedule 13.09.2016

Если клиент использует старую версию DacFX, параметры «Игнорировать пользователей» и т. Д. Будут автоматически проигнорированы.

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

person Gavin Campbell    schedule 22.09.2016