Migrazione in un database parzialmente indipendente

In questo argomento viene descritto come prepararsi al passaggio al modello del database parzialmente indipendente, quindi viene illustrata la procedura di migrazione.

Contenuto dell'argomento

  • Preparazione della migrazione di un database

  • Abilitazione di database parzialmente indipendenti

  • Conversione di un database a parzialmente indipendente

  • Migrazione di utenti a utenti di database indipendenti

Preparazione della migrazione di un database

Quando si considera la migrazione di un database al modello di database parzialmente indipendente, esaminare gli elementi seguenti.

  • È necessario comprendere il modello del database parzialmente indipendente. Per ulteriori informazioni, vedere Database indipendenti.

  • È necessario comprendere rischi specifici dei database parzialmente indipendenti. Per ulteriori informazioni, vedere Procedure consigliate per la sicurezza in database indipendenti.

  • Nei database indipendenti non è supportato l'utilizzo di funzionalità di replica, di rilevamento modifiche o Change Data Capture. Verificare che nel database non vengano utilizzate queste funzionalità.

  • Esaminare l'elenco di funzionalità del database che vengono modificate per i database parzialmente indipendenti. Per ulteriori informazioni, vedere Funzionalità modificate (database indipendente).

  • Eseguire una query sys.dm_db_uncontained_entities (Transact-SQL) per individuare oggetti o funzionalità non indipendenti nel database. Per ulteriori informazioni, vedere

  • Controllare l'XEvent database_uncontained_usage per verificare quando vengono utilizzate le funzionalità non indipendenti.

Abilitazione di database indipendenti

Prima di poter creare database indipendenti, è necessario abilitarli nell'istanza di Motore di database di SQL Server.

Abilitazione di database indipendenti tramite Transact-SQL

Nell'esempio seguente vengono abilitati database indipendenti nell'istanza del Motore di database di SQL Server.

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

Abilitazione di database indipendenti tramite Management Studio

Nell'esempio seguente vengono abilitati database indipendenti nell'istanza di Motore di database di SQL Server.

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sul nome del server e quindi scegliere Proprietà.

  2. Nella sezione Indipendenza della pagina Avanzate impostare l'opzione Abilita database indipendenti su True.

  3. Fare clic su OK.

Conversione di un database a parzialmente indipendente

Un database viene convertito in un database indipendente modificando l'opzione CONTAINMENT.

Conversione di un database in parzialmente indipendente tramite Transact-SQL

Nell'esempio seguente un database denominato Accounting viene convertito in un database parzialmente indipendente.

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

Conversione di un database in parzialmente indipendente tramite Management Studio

Nell'esempio seguente un database viene convertito in un database parzialmente indipendente.

  1. In Esplora oggetti espandere Database, fare clic con il pulsante destro del mouse sul database da convertire, quindi scegliere Proprietà.

  2. Nella pagina Opzioni, impostare l'opzione Tipo di indipendenza su Parziale.

  3. Fare clic su OK.

Migrazione di utenti a utenti di database indipendenti

Nell'esempio seguente viene eseguita la migrazione di tutti gli utenti basati sugli account di accesso di SQL Server a utenti del database indipendente con password. Nell'esempio sono inclusi account di accesso non abilitati. L'esempio deve essere eseguito nel database indipendente.

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 ;

Vedere anche

Riferimento

sp_migrate_user_to_contained (Transact-SQL)

sys.dm_db_uncontained_entities (Transact-SQL)

Concetti

Database indipendenti