Compartir a través de


Implementar una aplicación de capa de datos

Puede implementar una aplicación de capa de datos (DAC) desde un paquete DAC en una instancia existente del Motor de base de datos o de Base de datos SQL mediante un asistente o un script de PowerShell. El proceso de implementación registra una instancia de DAC mediante el almacenamiento de la definición de la DAC en la base de datos del sistema msdb (master en Base de datos SQL), crea una base de datos y, a continuación, rellena la base de datos con todos los objetos de base de datos definidos en la DAC.

  • Antes de empezar: Utilidad de SQL Server, Opciones y configuración de bases de datos, Limitaciones y restricciones, Requisitos previos, Seguridad, Permisos

  • Para implementar una DAC mediante: Asistente para implementar una aplicación de capa de datos, PowerShell

Antes de empezar

El mismo paquete DAC se puede implementar varias veces en una instancia única de Motor de base de datos, sin embargo las implementaciones se deben ejecutar de una en una. El nombre de instancia de DAC que se especificó para cada implementación debe ser único en la instancia del Motor de base de datos.

Para obtener más información acerca de la creación de un paquete DAC, vea Explicar las aplicaciones de capa de datos.

Utilidad de SQL Server

Si implementa una DAC en una instancia administrada del Motor de base de datos, la DAC implementada se incorpora a la Utilidad de SQL Server la próxima vez que el conjunto de recopilación de utilidades se envíe desde la instancia al punto de control de la utilidad. Posteriormente, la DAC aparecerá en el nodo Aplicaciones de capa de datos implementadas del Explorador de la utilidad de Management Studio y se notificará en la página de detalles Aplicaciones de capa de datos implementadas.

Opciones y configuración de bases de datos

De forma predeterminada, la base de datos que se cree durante la implementación incorporará toda la configuración predeterminada de la instrucción CREATE DATABASE, excepto en lo siguiente:

  • La intercalación y nivel de compatibilidad de las bases de datos se establecen según los valores definidos en el paquete DAC. Un paquete DAC compilado a partir de un proyecto de base de datos en las Herramientas de Desarrollo de SQL Server usa los valores establecidos en el proyecto de base de datos. Un paquete que se haya extraído de una base de datos existente usará los valores de la base de datos original.

  • Puede ajustar algunos de los valores de configuración de la base de datos, como por ejemplo el nombre de la base de datos y las rutas de archivo, en la página Actualizar la configuración. No puede establecer las rutas de acceso del archivo al realizar la implementación en Base de datos SQL.

Algunas opciones de base de datos, como TRUSTWORTHY, DB_CHAINING y HONOR_BROKER_PRIORITY, no se pueden ajustar en el proceso de implementación. Las propiedades físicas, como el número de grupos de archivos o el número y tamaño de los archivos no se pueden modificar en el proceso de implementación. Una vez se haya completado la implementación, podrá usar la instrucción ALTER DATABASE, SQL Server Management Studio o SQL Server PowerShell para personalizar la base de datos. Para obtener más información, vea Modificar una base de datos.

[Arriba]

Limitaciones y restricciones

Una DAC puede implementarse en Base de datos SQL, o una instancia de Motor de base de datos que ejecute SQL Server 2005 Service Pack 4 (SP4) o posterior. Si crea una DAC usando SQL Server 2012 o SQL Server 2008 R2, la DAC puede contener objetos no admitidos por SQL Server 2005. No puede implementar dicha DAC en instancias de SQL Server 2005.

[Arriba]

Requisitos previos

Se recomienda no implementar un paquete DAC desde orígenes desconocidos o que no sean de confianza. Es posible que estos paquetes contengan código malintencionado que podría ejecutar código Transact-SQL no deseado o provocar errores al modificar el esquema o la estructura de la base de datos física. Antes de usar un paquete desde un origen desconocido o que no sea de confianza, desempaquete la DAC y examine el código, como por ejemplo procedimientos almacenados u otro código definido por el usuario. Para obtener más información acerca de cómo realizar estas comprobaciones, vea Validar un paquete de DAC.

[Arriba]

Seguridad

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 es necesario para los inicios de sesión de Autenticación de Windows, ya que SQL Server no administra sus contraseñas.

[Arriba]

Permisos

Una DAC solo la pueden implementar miembros de los roles fijos de servidor sysadmin o serveradmin, o los inicios de sesión que pertenezcan al rol fijo de servidor dbcreator y dispongan de permisos ALTER ANY LOGIN. La cuenta de administrador del sistema de SQL Server integrada denominada sa también puede implementar una DAC. Al implementar una DAC con inicios de sesión en Base de datos SQL, se requiere la pertenencia a los roles loginmanager o serveradmin. La implementación de una DAC sin inicios de sesión en Base de datos SQL necesita la pertenencia a los roles dbmanager o serveradmin.

[Arriba]

Usar el Asistente Implementar aplicación de capa de datos

Para implementar una DAC mediante un asistente

  1. En el Explorador de objetos, expanda el nodo de la instancia en la que desee implementar la DAC.

  2. Haga clic con el botón secundario en el nodo Bases de datos y seleccione Implementar aplicación de capa de datos...

  3. Complete los cuadros de diálogo del asistente:

    • Página Introducción

    • Página Seleccionar paquete DAC

    • Página Revisar directiva

    • Página Actualizar la configuración

    • Página Resumen

    • Página Implementar

[Arriba]

Página Introducción

Esta página describe los pasos para implementar una aplicación de capa de datos.

No volver a mostrar esta página. - Haga clic en la casilla para evitar que la página se muestre en el futuro.

Siguiente >: va a la página Seleccionar paquete DAC.

Cancelar: termina el asistente sin implementar una DAC.

[Implementar el asistente]

Página Seleccionar paquete DAC

Use esta página para especificar el paquete DAC que contiene la aplicación de capa de datos que se va a implementar. La página pasa por tres estados.

[Implementar el asistente]

Seleccionar el paquete DAC

Use el estado inicial de la página para elegir el paquete DAC que se va a implementar. El paquete DAC debe ser un archivo de paquete DAC válido y tener una extensión .dacpac.

Paquete de DAC - Especifique la ruta y nombre del archivo del paquete DAC que contenga la aplicación de capa de datos que se va a implementar. Puede seleccionar el botón Examinar a la derecha del cuadro para ir a la ubicación del paquete DAC.

Nombre de aplicación - Un cuadro de solo lectura que muestra el nombre de DAC que se asignó cuando la DAC se creó o extrajo de una base de datos.

Versión - Un cuadro de solo lectura que muestra la versión que se asignó cuando la DAC se creó o extrajo de una base de datos.

Descripción - Un cuadro de solo lectura que muestra la descripción que se escribió cuando la DAC se creó o extrajo de una base de datos.

<Anterior - Vuelve a la página Introducción.

Siguiente >: muestra una barra de progreso cuando el asistente confirma que el archivo seleccionado es un paquete DAC válido.

Cancelar: termina el asistente sin implementar la DAC.

[Implementar el asistente]

Validar el paquete DAC

Muestra una barra de progreso cuando el asistente confirma que el archivo seleccionado es un paquete DAC válido. Si se valida el paquete DAC, el asistente pasa a la versión final de la página Seleccionar paquete, donde podrá comprobar los resultados de la validación. Si el archivo no es un paquete DAC válido, el asistente se queda en Seleccionar paquete DAC. Seleccione otro paquete DAC válido o cancele el asistente y genere un nuevo paquete DAC.

Validando el contenido de DAC - La barra de progreso que notifica el estado actual del proceso de validación.

< Anterior - Vuelve al estado inicial de la página Seleccionar paquete.

Siguiente >: va a la versión final de la página Seleccionar paquete.

Cancelar: termina el asistente sin implementar la DAC.

[Implementar el asistente]

Página Revisar directiva

Use esta página para revisar los resultados de la evaluación de la directiva de selección de servidores de DAC, en caso de que la DAC tenga una directiva. La directiva de selección de servidores de DAC es opcional y está asignada a la DAC cuando se crea en Visual Studio. La directiva se sirve de las facetas de la directiva de selección de servidores para especificar las condiciones que debe cumplir una instancia de Motor de base de datos para hospedar la DAC.

Resultados de evaluación de condiciones de directivas - Un informe de solo lectura que muestra si se han cumplido correctamente las condiciones de la directiva de implementación de DAC. Los resultados de la evaluación de cada condición se notifican en una línea independiente.

Las siguientes directivas de selección de servidor siempre se evalúan como falsas al implementar una DAC en Base de datos SQL: la versión del sistema operativo, el lenguaje, las canalizaciones con nombre habilitadas, las plataforma y tcp habilitado.

Pasar por alto infracciones de directivas: utilice esta casilla para comenzar con la implementación si se produce un error en una o más de las condiciones de la directiva. Seleccione esta opción solamente si está seguro de que todas las condiciones que produjeron errores no evitarán la correcta operación de la DAC.

<Anterior - Vuelve a la página Seleccionar paquete.

Siguiente >: pasa a la página Actualizar la configuración.

Cancelar: termina el asistente sin implementar la DAC.

[Implementar el asistente]

Página Actualizar la configuración

Use esta página para especificar los nombres de la instancia de DAC implementada y la base de datos que ha creado la implementación, así como para establecer las opciones de base de datos.

Nombre de la base - Especifica el nombre de la base de datos que se creará en la implementación. El valor predeterminado es el nombre de la base de datos de origen de donde se extrajo la DAC. El nombre debe ser único en la instancia de Motor de base de datos y cumplir las reglas de los identificadores de Motor de base de datos.

Si cambia el nombre de la base de datos, los nombres de los archivos de datos y de registro cambiarán para coincidir con el nuevo valor.

El nombre de la base de datos también se utiliza como nombre de la instancia de DAC. El nombre de instancia se muestra en el nodo para la DAC en el nodo Aplicaciones de capa de datos en Explorador de objetos, o bien en el nodo Aplicaciones de capa de datos implementadas en el Explorador de la utilidad.

Las siguientes opciones no se aplican a Base de datos SQL y no se muestran al realizar la implementación en Base de datos SQL.

Utilizar la ubicación de base de datos predeterminada: seleccione esta opción para crear los archivos de datos de la base de datos y los archivos de registro en la ubicación predeterminada para la instancia de Motor de base de datos. Los nombres de archivo se generarán utilizando el nombre de la base de datos.

Especificar archivos de base de datos - Seleccione esta opción para especificar una ubicación o un nombre diferentes para los archivos de datos y de registro.

Ruta de acceso y nombre del archivo de datos - Especifique la ruta completa y nombre de archivo para el archivo de datos. El cuadro se rellena con la ruta de acceso y nombre de archivo predeterminados. Modifique la cadena en el cuadro para cambiar el valor predeterminado o utilice el botón Examinar para navegar hasta la carpeta donde el archivo de datos se va a colocar.

Ruta de acceso y nombre del archivo de registro - Especifique la ruta completa y el nombre del archivo para el archivo de registro. El cuadro se rellena con la ruta de acceso y nombre de archivo predeterminados. Modifique la cadena en el cuadro para cambiar el valor predeterminado o utilice el botón Examinar para navegar hasta la carpeta donde se va a colocar el archivo de registro.

<Anterior - Vuelve a la página Seleccionar paquete DAC.

Siguiente >: continúa en la página Resumen.

Cancelar: termina el asistente sin implementar la DAC.

[Implementar el asistente]

Página Resumen

Use esta página para comprobar las acciones que el asistente realizará al implementar la DAC.

La siguiente configuración se utilizará en la implementación de su DAC. - Compruebe la información que se muestra para asegurarse de que las acciones a emprender serán las correctas. La ventana muestra el paquete DAC y el nombre que seleccionó para la instancia de DAC implementada. La ventana también muestra los valores de configuración que se utilizarán al crear la base de datos asociada con la DAC.

< Anterior - Vuelve a la página Actualizar la configuración para cambiar las opciones seleccionadas.

Siguiente >: implementa la DAC y muestra los resultados en la página Implementar DAC.

Cancelar: termina el asistente sin implementar la DAC.

[Implementar el asistente]

Página Implementar

Esta página notifica si la operación de implementación se realizó correctamente o no.

Implementación de DAC - Notifica si cada acción realizada para implementar la DAC se realizó o no correctamente. Revise la información para determinar si cada acción se realizó o no correctamente. Cualquier acción que encontrara un error tendrá un vínculo en la columna Resultado. Seleccione el vínculo para ver un informe del error para esa acción.

Guardar informe - Seleccione este botón para guardar el informe de implementación en un archivo HTML. El archivo notifica el estado de cada acción, incluidos todos los errores generados por cualquiera de las acciones. La carpeta predeterminada es la carpeta SQL Server Management Studio\DAC Packages de la carpeta Documentos de su cuenta de Windows.

Finalizar: termina el asistente.

[Implementar el asistente]

Usar PowerShell

Para implementar la DAC mediante el método de Install() en un script de PowerShell

  1. Cree un objeto SMO Server y establézcalo en la instancia en la que desea implementar la DAC.

  2. Abra un objeto ServerConnection y conéctese a la misma instancia.

  3. Use System.IO.File para cargar el archivo de paquete DAC.

  4. Use add_DacActionStarted y add_DacActionFinished para suscribirse a los eventos de implementación de DAC.

  5. Establezca DatabaseDeploymentProperties.

  6. Use el método DacStore.Install para implementar la DAC.

  7. Cierra la secuencia de archivos usada para leer el archivo de paquete DAC.

[Arriba]

Ejemplo (PowerShell)

En el siguiente ejemplo se implementa la DAC denominada MyApplication en una instancia predeterminada de Motor de base de datos, mediante una definición de DAC de un paquete de MyApplication.dacpac.

## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .

## Open a Common.ServerConnection to the same instance.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect()
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)

## Load the DAC package file.
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)

## Subscribe to the DAC deployment events.
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})

## Deploy the DAC and create the database.
$dacName  = "MyApplication"
$evaluateTSPolicy = $true
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)
$dacstore.Install($dacType, $deployProperties, $evaluateTSPolicy)
$fileStream.Close()

[Arriba]

Vea también

Conceptos

Aplicaciones de capa de datos

Extraer una DAC de una base de datos

Identificadores de base de datos