Implementar aplicaciones de capa de datos

Una aplicación de capa de datos (DAC) define los esquemas SQL Server Database Engine (Motor de base de datos de SQL Server) y los objetos requeridos para admitir una aplicación. Una DAC se puede implementar utilizando uno de dos procesos:

  • Se puede crear una DAC e integrarla usando un proyecto de aplicación de capa de datos de SQL Server en Microsoft Visual Studio 2010.

  • Se puede extraer una DAC de una base de datos existente usando el Asistente Extraer aplicación de capa de datos en SQL Server Management Studio.

Los procesos de extracción y creación generan una definición de DAC que especifica los objetos y metadatos. La definición de la DAC se integra en un paquete DAC, que es un archivo que contiene un manifiesto de todas las definiciones de directivas y objetos incluidas en la DAC. El paquete DAC se puede utilizar para:

  • Implantar la versión actual de la DAC en el desarrollo, pruebas e instancias de producción de Motor de base de datos y SQL Azure. Usar el Asistente Implementar aplicación de capa de datos para implementar una nueva instancia de la DAC. Usar el Asistente Actualizar aplicación de capa de datos para actualizar una instancia existente de la DAC que se implementó usando una versión anterior de la DAC.

  • Iniciar el desarrollo de la versión siguiente de la DAC en Visual Studio importando la DAC a un nuevo proyecto de aplicación de capa de datos de SQL Server en Visual Studio.

Aplicaciones de capa de datos en el proceso de desarrollo

Las DAC se desarrollan usando proyectos DAC en Visual Studio. Un proyecto DAC permite una fuerte integración del desarrollo de objetos de capa de datos con el entorno de desarrollo de la aplicación que se está codificando para usar los objetos. Un desarrollador de bases de datos crea la DAC por medio de un proyecto DAC en Visual Studio. Este proyecto se puede integrar en la solución general de desarrollo de la aplicación en Visual Studio Team System. Cuando los desarrolladores de aplicaciones escriben el código de aplicación, el desarrollador de bases de datos codifica las definiciones de los objetos de la DAC.

Para una nueva aplicación, el desarrollador de bases de datos crea el proyecto DAC y, a continuación, comienza a agregar objetos al proyecto a medida que los desarrolla. Al iniciar el proyecto de una nueva versión de una aplicación existente, el desarrollador puede extraer un paquete DAC de la base de datos actual utilizada por la aplicación e importarlo en el proyecto DAC.

El desarrollador puede agregar estos elementos al proyecto DAC:

  • Propiedades DAC que definen características de la DAC. Por ejemplo, cada DAC tiene una propiedad de nombre de aplicación y una propiedad de versión cuyos valores se relacionan normalmente con el nombre y número de versión de la aplicación asociada.

  • Las definiciones de todos los objetos de la base de datos usados por la aplicación, como esquemas, tablas, vistas y procedimientos almacenados. Las DAC no admiten todos los objetos de SQL Server disponibles. Para obtener más información, vea Compatibilidad de DAC con las versiones y objetos de SQL Server.

  • Definiciones de los objetos a nivel de instancia, como inicios de sesión, asociadas con los objetos de la base de datos y usadas por la aplicación.

  • Una directiva de selección de servidor que defina los prerrequisitos que debe cumplir una instancia de Motor de base de datos para hospedar la DAC. La directiva se define usando la faceta Selección de servidor y puede evaluar condiciones como la edición e intercalación predeterminada de la instancia.

  • Los archivos y scripts que se pueden incrustar en la DAC cuando se crea en Visual Studio. Como ejemplos podemos citar documentos de aplicación, planes de generación de datos que especifican cómo crear datos de pruebas significativos, o scripts previos y posteriores a la implementación.

Para realizar comprobaciones, el desarrollador de bases de datos puede implementar el proyecto DAC en una instancia de pruebas del Motor de base de datos. Alternativamente, el desarrollador puede generar el proyecto DAC, que crea una definición de DAC en un paquete DAC. La definición de DAC contiene los metadatos para todos los elementos definidos en el proyecto DAC. El paquete DAC es un archivo XML comprimido que contiene la definición de DAC y se utiliza para implementar o actualizar una DAC. Los desarrolladores y evaluadores pueden usar el Asistente Implementar aplicación de capa de datos para implementar la DAC en sus sistemas de pruebas.

Cuando el desarrollo de la aplicación ha finalizado, el proyecto DAC se genera para crear la versión de producción del paquete DAC, al igual que se genera el proyecto de aplicación para crear la producción de los archivos ejecutables de aplicación. El paquete DAC se pasa a los administradores de la base de datos de producción, que lo implementan en las instancias del Motor de base de datos que se ejecuta en producción o en SQL Azure.

Una vez implementada en producción una versión DAC, se puede iniciar el desarrollo de la versión siguiente de la DAC. El desarrollador de bases de datos crea una nueva versión del proyecto DAC con las definiciones de todos los objetos de capa de datos que ya existen en esa versión. Cuando el proyecto se integra en un nuevo paquete DAC, el mismo paquete se puede usar para implementar una nueva instancia de la DAC o actualizar una instancia existente con la nueva versión. El Asistente Actualizar aplicación de capa de datos compara el esquema de la instancia de la DAC existente y del paquete DAC y dinámicamente realiza las acciones necesarias para transformar la instancia de la DAC existente en la nueva versión de la DAC.

Para obtener más información sobre los proyectos DAC en la documentación de Visual Studio, vea Crear y administrar aplicaciones de capa de datos.

Extraer una DAC de una base de datos

El Asistente Extraer aplicación de capa de datos se utiliza para generar una definición de DAC basada en una base de datos existente. La definición de DAC contiene los metadatos que definen todos los objetos de la base de datos, cualquier inicio de sesión que asigne las entidades de seguridad en la base de datos, y la intercalación de bases de datos y nivel de compatibilidad. La definición de DAC no contiene ningún dato del usuario de la base de datos de origen. La definición de DAC se integra en un archivo empaquetado DAC.

El asistente solo puede extraer objetos que admitan las aplicaciones de capa de datos. Después de haber especificado las propiedades, como el nombre y la versión de la DAC, el asistente carga todos los objetos de la base de datos y comprueba que son compatibles con una DAC. A continuación, el asistente muestra una página de resumen que agrupa los objetos en tres categorías:

  • Los objetos con un icono rojo de entrada no válida no son compatibles con una DAC.

  • Los objetos con un icono amarillo de advertencia son compatibles con una DAC, pero tienen una dependencia con un objeto que no lo es.

  • Los objetos con un icono verde de ejecución correcta son compatibles con una DAC y no presentan ninguna dependencia con objetos que no son admitidos por una DAC.

Si el asistente encuentra cualquier objeto que no se admita en una DAC, enumerará los objetos en un informe de resumen y no creará el paquete DAC. Si todos los objetos tienen un icono verde de realización correcta, puede continuar con la creación del paquete DAC.

El paquete DAC extraído se puede utilizar para:

  • Importar la DAC en un proyecto DAC en Visual Studio, donde un desarrollador de bases de datos puede iniciar el desarrollo de la versión siguiente de la DAC.

  • Implementar una nueva instancia de la DAC.

  • Actualizar una versión implementada previamente de la DAC.

Para obtener más información acerca de los objetos compatibles, vea Compatibilidad de DAC con las versiones y objetos de SQL Server.

Para obtener más información acerca de cómo iniciar el asistente, vea Extraer una DAC de una base de datos.

Contraseñas de inicio de sesión

Para mejorar la seguridad, los inicios de sesión de la Autenticación de SQL Server están almacenados en un paquete DAC sin ninguna contraseña. Cuando el paquete se implementa o actualiza, el inicio de sesión se crea como un inicio de sesión deshabilitado con una contraseña generada. Para habilitar los inicios de sesión, use un inicio de sesión que disponga del permiso ALTER ANY LOGIN y emplee ALTER LOGIN para habilitar el inicio de sesión y asignar una nueva contraseña que pueda comunicar al usuario. Esto no se necesita para los inicios de sesión de la Autenticación de Windows dado que SQL Server no administra sus contraseñas.