Leggere in inglese

Condividi tramite


Eseguire la migrazione in un database parzialmente contenuto

Si applica a:SQL Server

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

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

  • È necessario comprendere il modello del database parzialmente contenuto. Per altre informazioni, vedere Database contenuti.

  • È necessario comprendere i rischi specifici dei database parzialmente contenuti. Per altre informazioni, vedere Security Best Practices with Contained Databases.

  • Nei database contenuti non sono supportati la replica, la cattura dei dati modificati o il rilevamento delle modifiche. Verificare che nel database non vengano utilizzate queste funzionalità.

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

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

  • Controllare l'XEvent database_uncontained_usage per vedere quando vengono usate le funzionalità non contenute.

Abilita database contenuti

Prima che i database contenuti possano essere creati, devono essere abilitati sull'istanza del 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.

SQL
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 del 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 pagina Avanzate, nella sezione Contenimento, impostare l'opzione Abilita database contenuti su True.

  3. Seleziona OK.

Conversione di un database a contenuto parziale

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

Conversione di un database in uno parzialmente contenuto tramite Transact-SQL

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

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

Conversione di un database a parzialmente contenuto tramite Management Studio

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

  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 contenimento su Parziale.

  3. Seleziona OK.

Migrazione di utenti a utenti di database contenuti

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 esclusi accessi non abilitati. L'esempio deve essere eseguito nel database contenuto.

SQL
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 ;  

Vedi anche

Database contenuti
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)