Реализация приложений уровня данных

Приложение уровня данных определяет схемы компонента SQL Server Database Engine и объекты, необходимые для поддержки приложения. Приложение DAC может быть реализовано с использованием одного из следующих способов.

  • Для разработки и создания приложения уровня данных можно использовать проект приложения уровня данных SQL Server в среде Microsoft Visual Studio 2010.

  • Приложение уровня данных можно извлечь из существующей базы данных с помощью мастера извлечения приложения уровня данных из среды Среда SQL Server Management Studio.

Результатом процессов извлечения, разработки и построения является создание определения DAC, задающего объекты и метаданные. Определение DAC встраивается в пакет DAC, который представляет собой файл, содержащий манифест для всех определений политик и объектов, включаемых в DAC. Пакет DAC может использоваться в следующих целях.

  • Развертывание текущей версии приложения уровня данных на проектно-конструкторских, тестовых и производственных экземплярах Database Engine и SQL Azure. Использование мастера развертывания приложения уровня данных для развертывания нового экземпляра DAC. Использование мастера обновления приложения уровня данных для обновления существующего экземпляра DAC, развернутого с использованием более старой версии DAC.

  • Начало разработки следующей версии DAC в среде Visual Studio при помощи импорта DAC в новый проект приложения уровня данных SQL Server в среде Visual Studio.

Приложения уровня данных в процессе разработки

Приложения DAC разрабатываются в среде Visual Studio при помощи проектов DAC. Проект DAC позволяет осуществить глубокую интеграцию процесса разработки объектов уровня данных со средой разработки приложения в целях использования этих объектов. Разработчик баз данных выполняет разработку DAC в среде Visual Studio с использованием проекта DAC. Проект DAC может быть интегрирован в общее решение для разработки приложения в среде Visual Studio Team System. Так же, как разработчики приложений пишут код приложений, разработчики баз данных пишут код определений объектов уровня данных в DAC.

При разработке нового приложения разработчик базы данных создает проект DAC, после чего добавляет объекты в проект по мере их разработки. Если начинается проект по разработке новой версии существующего приложения, разработчик баз данных может извлечь пакет DAC из текущей базы данных, используемой приложением, и выполнить его импорт в проект DAC.

Разработчик может добавить в проект DAC следующие элементы.

  • Свойства DAC, определяющие характеристики DAC. Например, каждый пакет DAC имеет свойство «имя приложения» и «версия», значения которых обычно соответствуют имени и номеру версии связанного приложения.

  • Определения всех объектов базы данных, используемых приложением, таких как схемы, таблицы, представления и хранимые процедуры. Пакеты DAC поддерживают не все существующие объекты SQL Server. Дополнительные сведения см. в разделе Поддержка приложений уровня данных для объектов и версий SQL Server.

  • Определения объектов уровня экземпляра, например имен входа, связанных с объектами базы данных и используемых приложением.

  • Политика выбора серверов, определяющая предварительные условия, которым должен удовлетворять экземпляр компонента Database Engine для размещения пакетов DAC. Политика определяется с помощью аспекта «Выбор сервера» и способна проверять такие условия, как выпуск и параметры сортировки экземпляра по умолчанию.

  • Файлы и сценарии, которые могут быть внедрены в DAC, при его разработке в среде Visual Studio. Например, документы приложения, планы создания данных, определяющие порядок создания значимых проверочных данных, сценарии, выполняемые перед развертыванием и после него.

В целях проверки разработчик баз данных может развернуть проект DAC на тестовом экземпляре компонента Database Engine. Разработчик также может выполнить построение проекта DAC, в результате которого в пакете DAC создается определение DAC. Определение DAC содержит метаданные для всех элементов, заданных в проекте DAC. Пакет DAC представляет собой XML-файл, упакованный в ZIP-архив, который содержит определение DAC. Он используется для развертывания или обновления DAC. Для установки DAC на отладочные системы разработчики и тестировщики могут использовать мастер развертывания приложения уровня данных.

Когда разработка приложения завершена, формируется проект DAC для создания рабочей версии пакета DAC, так же как для создания исполняемых файлов приложения формируется проект приложения. Пакет DAC передается администраторам рабочих баз данных, которые развертывают его на экземплярах компонента Database Engine, работающего в производственной среде, или на SQL Azure.

После развертывания версии DAC в рабочей среде можно начать разработку следующей версии DAC. Разработчик баз данных создает новую версию проекта DAC с определениями всех объектов уровня данных, которые существуют в этой версии. После того как выполнено построение проекта и создан новый пакет DAC, этот пакет можно использовать для развертывания нового экземпляра DAC или для обновления существующего экземпляра до новой версии. Мастер обновления приложения уровня данных сравнивает схему существующего экземпляра DAC и схему пакета DAC и динамически выполняет операции, необходимые для изменения существующего экземпляра DAC до новой версии DAC.

Дополнительные сведения о проектах DAC см. в документации по Visual Studio, раздел Создание приложений уровня данных и управление ими.

Извлечение DAC из базы данных

Для построения определения DAC на основе имеющейся базы данных используется мастер извлечения приложения уровня данных. Определение DAC содержит метаданные, определяющие все объекты в базе данных, все имена входа, сопоставленные субъектам безопасности в базе данных, параметры сортировки базы данных, уровень совместимости. Определение DAC не содержит пользовательских данных из базы данных-источника. Определение DAC встроено в файл пакета DAC.

Мастер может извлечь только те объекты, которые поддерживаются в приложениях уровня данных. После того как были заданы свойства, например имя и версия DAC, мастер загружает все объекты из базы данных и выполняет проверку их поддержки в DAC. Затем мастер отображает итоговую страницу, на которой объекты сгруппированы по трем категориям.

  • Объекты с красным значком, обозначающим неверную запись, не поддерживаются в DAC.

  • Объекты с желтым предупредительным значком поддерживаются в DAC, но зависят от объектов, которые не поддерживаются.

  • Объекты с зеленым значком, обозначающим успешную операцию, поддерживаются в DAC и не зависят от объектов, которые не поддерживаются в DAC.

Если мастер обнаружит объекты, которые не поддерживаются в DAC, он перечислит эти объекты в итоговом отчете, а пакет DAC создан не будет. Если все объекты имеют зеленый значок, можно продолжить создание пакета DAC.

Извлеченный пакет DAC может использоваться в следующих целях.

  • Выполнение импорта DAC в проект DAC среды Visual Studio, в которой разработчик баз данных может начать разработку следующей версии DAC.

  • Развертывание нового экземпляра DAC.

  • Обновление ранее развернутой версии DAC.

Дополнительные сведения о поддерживаемых объектах см. в разделе Поддержка приложений уровня данных для объектов и версий SQL Server.

Дополнительные сведения о запуске этого мастера см. в разделе Как извлечь приложение уровня данных из базы данных.

Пароли имен входа

Для повышения безопасности проверки подлинности SQL Server имена входа хранятся в пакете DAC без пароля. При развертывании или обновлении пакета имя входа создается как отключенное имя входа с созданным паролем. Чтобы включить имена входа, войдите в систему под учетной записью, имеющей разрешение ALTER ANY LOGIN и с помощью команды ALTER LOGIN включите имя входа и присвойте ему новый пароль, который можно передать пользователю. Это не требуется для имен входа, использующих проверку подлинности Windows, поскольку SQL Server не управляет их паролями.