Compartir a través de


Migrar a una base de datos parcialmente independiente

En este tema se describe cómo preparar el cambio al modelo de base de datos parcialmente independiente y, a continuación, se proporcionan los pasos de migración.

En este tema:

  • Preparar la migración de una base de datos

  • Habilitar bases de datos parcialmente independientes

  • Convertir una base de datos en parcialmente independiente

  • Migrar usuarios a usuarios de base de datos independiente

Preparar la migración de una base de datos

Revise los siguientes aspectos cuando vaya a migrar una base de datos al modelo de base de datos parcialmente independiente.

  • Debe entender el modelo de base de datos parcialmente independiente. Para obtener más información, vea Bases de datos independientes.

  • Debe conocer los riesgos que son exclusivos de las bases de datos parcialmente independientes. Para obtener más información, vea Prácticas recomendadas de seguridad con bases de datos independientes.

  • Las bases de datos independientes no admiten la replicación, la captura de datos modificados ni el seguimiento de cambios. Asegúrese de que la base de datos no utiliza estas características.

  • Revise la lista de características de base de datos que se modifican en las bases de datos parcialmente independientes. Para obtener más información, vea Características modificadas (base de datos contenida).

  • Realice una consulta sys.dm_db_uncontained_entities (Transact-SQL) para detectar objetos o características dependientes en la base de datos. Para obtener más información, vea

  • Supervise el XEvent database_uncontained_usage para ver cuándo se utilizan características dependientes.

Habilitar bases de datos independientes

Las bases de datos independientes deben estar habilitadas en la instancia de Motor de base de datos de SQL Server para poder crear bases de datos independientes.

Habilitar las bases de datos independientes mediante Transact-SQL

En el siguiente ejemplo se habilitan las bases de datos independientes en la instancia de Motor de base de datos de SQL Server.

sp_configure 'contained database authentication', 1;
GO
RECONFIGURE ;
GO

Habilitar las bases de datos independientes mediante Management Studio

En el siguiente ejemplo se habilitan las bases de datos independientes en la instancia de Motor de base de datos de SQL Server.

  1. En el Explorador de objetos, haga clic con el botón secundario en el nombre del servidor y, a continuación, haga clic en Propiedades.

  2. En la página Avanzadas, en la sección Contención, establezca la opción Habilitar bases de datos independientes en Verdadero.

  3. Haga clic en Aceptar.

Convertir una base de datos en parcialmente independiente

Una base de datos se convierte en base de datos independiente cambiando la CONTAINMENT opción.

Convertir una base de datos en parcialmente independiente mediante Transact-SQL

En el siguiente ejemplo se convierte en parcialmente independiente una base de datos denominada Accounting.

USE [master]
GO
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL
GO

Convertir una base de datos en parcialmente independiente mediante Management Studio

En el siguiente ejemplo se convierte una base de datos en una base de datos parcialmente independiente.

  1. En el Explorador de objetos, expanda Bases de datos, haga clic con el botón secundario en la base de datos que se va a convertir y, a continuación, haga clic en Propiedades.

  2. En la página Opciones, cambie la opción Tipo de contención a Parcial.

  3. Haga clic en Aceptar.

Migrar usuarios a usuarios de base de datos independiente

En el siguiente ejemplo, se realiza la migración de todos los usuarios basados en inicio de sesión de SQL Server a usuarios de base de datos independiente con contraseñas. En el ejemplo se excluyen los inicios de sesión que no están habilitados. El ejemplo se debe ejecutar en la base de datos independiente.

DECLARE @username sysname ;
DECLARE user_cursor CURSOR
    FOR 
        SELECT dp.name 
        FROM sys.database_principals AS dp
        JOIN sys.server_principals AS sp 
        ON dp.sid = sp.sid
        WHERE dp.authentication_type = 1 AND sp.is_disabled = 0;
OPEN user_cursor
FETCH NEXT FROM user_cursor INTO @username
    WHILE @@FETCH_STATUS = 0
    BEGIN
        EXECUTE sp_migrate_user_to_contained 
        @username = @username,
        @rename = N'keep_name',
        @disablelogin = N'disable_login';
    FETCH NEXT FROM user_cursor INTO @username
    END
CLOSE user_cursor ;
DEALLOCATE user_cursor ;

Vea también

Referencia

sp_migrate_user_to_contained (Transact-SQL)

sys.dm_db_uncontained_entities (Transact-SQL)

Conceptos

Bases de datos independientes