Migrazione in un database parzialmente indipendenteMigrate to a Partially Contained Database

In questo argomento viene descritto come prepararsi al passaggio al modello del database parzialmente indipendente, quindi viene illustrata la procedura di migrazione.This topic discusses how to prepare to change to the partially contained database model and then provides the migration steps.

Contenuto dell'argomento:In this topic:

Preparazione della migrazione di un database Preparing to Migrate a Database

Quando si considera la migrazione di un database al modello di database parzialmente indipendente, esaminare gli elementi seguenti.Review the following items when considering migrating a database to the partially contained database model.

  • È necessario comprendere il modello del database parzialmente indipendente.You should understand the partially contained database model. Per altre informazioni, vedere Database indipendenti.For more information, see Contained Databases.

  • È necessario comprendere rischi specifici dei database parzialmente indipendenti.You should understand risks that are unique to partially contained databases. Per altre informazioni, vedere Security Best Practices with Contained Databases.For more information, see Security Best Practices with Contained Databases.

  • Nei database indipendenti non è supportato l'utilizzo di funzionalità di replica, di rilevamento modifiche o Change Data Capture.Contained databases do not support replication, change data capture, or change tracking. Verificare che nel database non vengano utilizzate queste funzionalità.Confirm the database does not use these features.

  • Esaminare l'elenco di funzionalità del database che vengono modificate per i database parzialmente indipendenti.Review the list of database features that are modified for partially contained databases. Per altre informazioni, vedere Funzionalità modificate (database indipendente).For more information, see Modified Features (Contained Database).

  • Eseguire una query su sys.dm_db_uncontained_entities (Transact-SQL) per trovare oggetti o funzionalità indipendenti nel database.Query sys.dm_db_uncontained_entities (Transact-SQL) to find uncontained objects or features in the database. Per altre informazioni, vedereFor more information, see.

  • Controllare l'XEvent database_uncontained_usage per vedere quando vengono usate le funzionalità indipendenti.Monitor the database_uncontained_usage XEvent to see when uncontained features are used.

Abilitazione di database indipendenti Enable Contained Databases

Prima di poter creare database indipendenti, è necessario abilitarli nell'istanza di Motore di database di SQL ServerSQL Server Database Engine.Contained databases must be enabled on the instance of Motore di database di SQL ServerSQL Server Database Engine, before contained databases can be created.

Abilitazione di database indipendenti tramite Transact-SQLEnabling Contained Databases Using Transact-SQL

Nell'esempio seguente vengono abilitati database indipendenti nell'istanza del Motore di database di SQL ServerSQL Server Database Engine.The following example enables contained databases on the instance of the Motore di database di SQL ServerSQL Server Database Engine.

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

Abilitazione di database indipendenti tramite Management StudioEnabling Contained Databases Using Management Studio

Nell'esempio seguente vengono abilitati database indipendenti nell'istanza del Motore di database di SQL ServerSQL Server Database Engine.The following example enables contained databases on the instance of the Motore di database di SQL ServerSQL Server Database Engine.

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sul nome del server e quindi scegliere Proprietà.In Object Explorer, right-click the server name, and then click Properties.

  2. Nella sezione Indipendenza della pagina Avanzate impostare l'opzione Abilita database indipendenti su True.On the Advanced page, in the Containment section, set the Enable Contained Databases option to True.

  3. Fare clic su OK.Click OK.

Conversione di un database a parzialmente indipendente Converting a Database to Partially Contained

Un database viene convertito in un database indipendente modificando l'opzione CONTAINMENT .A database is converted to a contained database by changing the CONTAINMENT option.

Conversione di un database in parzialmente indipendente tramite Transact-SQLConverting a Database to Partially Contained Using Transact-SQL

Nell'esempio seguente un database denominato Accounting viene convertito in un database parzialmente indipendente.The following example converts a database named Accounting to a partially contained database.

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

Conversione di un database in parzialmente indipendente tramite Management StudioConverting a Database to Partially contained Using Management Studio

Nell'esempio seguente un database viene convertito in un database parzialmente indipendente.The following example converts a database to a partially contained database.

  1. In Esplora oggetti espandere Database, fare clic con il pulsante destro del mouse sul database da convertire, quindi scegliere Proprietà.In Object Explorer, expand Databases, right-click the database to be converted, and then click Properties.

  2. Nella pagina Opzioni impostare l'opzione Tipo di indipendenza su Parziale.On the Options page, change the Containment type option to Partial.

  3. Fare clic su OK.Click OK.

Migrazione di utenti a utenti di database indipendenti Migrating Users to Contained Database Users

Nell'esempio seguente viene eseguita la migrazione di tutti gli utenti basati sugli account di accesso di SQL ServerSQL Server a utenti del database indipendente con password.The following example migrates all users that are based on SQL ServerSQL Server logins to contained database users with passwords. Nell'esempio sono inclusi account di accesso non abilitati.The example excludes logins that are not enabled. L'esempio deve essere eseguito nel database indipendente.The example must be executed in the contained database.

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 ancheSee Also

Database indipendenti Contained Databases
sp_migrate_user_to_contained (Transact-SQL) sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL) sys.dm_db_uncontained_entities (Transact-SQL)