Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложение уровня данных (DAC) — это автономная единица всей модели базы данных и переносимая в артефакт, известный как пакет DAC или .dacpac. Рекомендуется проверить содержимое объекта .dacpac перед развертыванием в рабочей среде и валидировать действия обновления перед обновлением существующего уровня данных DAC. Проверка содержимого .dacpac особенно важна при развертывании пакетов, которые не были разработаны в вашей организации. В этой статье описано несколько способов распаковки модели базы данных из .dacpac для Windows, macOS и Linux.
Предупреждение
Не развертывайте .dacpac из неизвестных или ненадежных источников. Такие daCs могут содержать вредоносный код, который может выполнить непреднамеренный код или вызвать ошибки, изменив схему. Прежде чем использовать DAC из неизвестного или ненадежного источника, разверните его в изолированном тестовом экземпляре ядра СУБД, распакуйте DAC и изучите код, например хранимые процедуры или другой определяемый пользователем код.
Варианты проверки содержимого .dacpac включают:
- импорт
.dacpacв проект SQL в Visual Studio - использование утилиты командной строки SqlPackage для извлечения
.dacpac - распаковка файла для просмотра содержимого XML
- Развертывание тестового экземпляра
.dacpac
Распаковка .dacpac сразу после извлечения из базы данных для просмотра определений объектов более эффективно выполняется с помощью функции Extract в SqlPackage со свойством /p:ExtractTarget=File. Результат непосредственно создает один файл .sql, содержащий определения объектов из указанной исходной базы данных.
Импорт DACPAC в проект SQL в Visual Studio
.dacpac Импорт в проект SQL в Visual Studio приводит к преобразованию содержимого .dacpac в файлы .sql и их упорядочиванию в папки. После импорта скрипты после развертывания и скрипты предварительного развертывания из .dacpac отображаются в обозревателе решений.
Установите sql Server Data Tools в составе Visual Studio и создайте новый проект SQL.
В обозревателе решений щелкните правой кнопкой мыши пустой проект и выберите Импорт, а затем из пакета приложения уровня данных.
Распакуйте DACPAC, чтобы просмотреть содержимое XML.
Распаковка файла .dacpac приводит к тому, что необработанное XML-содержимое доступно для просмотра в текстовом редакторе. При поиске определенного компонента в .dacpacпроверка содержимого XML может быть быстрым методом для доступа к информации.
Измените расширение файла
.dacpacна.zip.Распакуйте файл .zip с помощью служебной программы, предоставленной операционной системой. Чтобы распакуировать файл из командной строки, выполните следующие действия.
unzip AdventureWorks.dacpacПолученное содержимое включает
DacMetadata.xml,Origin.xmlиmodel.xml.
Развертывание DACPAC в тестовом экземпляре
Развертывание .dacpac в тестовом экземпляре приводит к тому, что содержимое .dacpac публикуется в базе данных, где объекты можно просматривать из различных подключенных средств базы данных.
Заметка
Одним из вариантов локального создания тестового экземпляра является SQL Server в Docker.
Развертывание DACPAC с помощью Visual Studio Code
Установите расширение MSSQL для Visual Studio Code и следуйте инструкциям, чтобы включить интерфейс приложения уровня данных (предварительная версия).
Подключитесь к нужному экземпляру. Щелкните правой кнопкой мыши узел сервера и выберите Мастер приложений уровня данных в меню.
Выберите вариант развертывания из мастера и задайте для параметра "Целевая база данных " значение "Создать базу данных".
После развертывания перейдите к базе данных на подключенном сервере в обозревателе объектов, чтобы просмотреть объекты базы данных.
Развертывание DACPAC с помощью SqlPackage
Установите SqlPackage.
Используйте SqlPackage в командной строке для публикации
.dacpacфайла в нужный экземпляр. Примеры команд для публикации.dacpacв базу данных см. в примерах публикации SqlPackage.
Другие средства с возможностями развертывания DACPAC
Помимо Visual Studio Code и SqlPackage, целый ряд других инструментов можно использовать для развертывания .dacpac в базе данных. Ниже приведены некоторые примеры:
- Среда SQL Server Management Studio
- Visual Studio: SQL Server Data Tools
Вызов метода Unpack()
API Microsoft.SqlServer.DacFx .NET предоставляет метод для распаковки.dacpac в папку, который можно использовать для программной распаковки .dacpac в папку, как показано. В следующем примере приложение .NET принимает два аргумента, путь к файлу .dacpac и путь к выходной папке, а результатом является содержимое .dacpac преобразовано в 3 XML-файла и один файл .sql, содержащий все объекты базы данных.
using Microsoft.SqlServer.Dac;
namespace DacUnpack
{
class Program
{
static void Main(string[] args)
{
var dacpacPath = args[0];
var outputPath = args[1];
if (!Directory.Exists(outputPath))
{
Directory.CreateDirectory(outputPath);
}
Console.WriteLine("Unpacking {0} to {1}", dacpacPath, outputPath);
using(DacPackage dacpac = DacPackage.Load(dacpacPath))
{
dacpac.Unpack(outputPath);
}
}
}
}