Migrar para um banco de dados parcialmente contido

Aplica-se:SQL Server

Este tópico explica como se preparar para mudar para o modelo de banco de dados parcialmente independente e, em seguida, apresenta as etapas de migração.

Preparando para migrar um banco de dados

Analise os itens a seguir ao considerar migrar um banco de dados para o modelo de banco de dados parcialmente contido.

  • Você deve entender o modelo de banco de dados parcialmente contido. Para obter mais informações, consulte Bancos de dados independentes.

  • Você deve entender os riscos específicos dos bancos de dados parcialmente contidos. Para obter mais informações, consulte Security Best Practices with Contained Databases.

  • Bancos de dados contidos não oferecem suporte à replicação, à captura de dados alterados nem ao rastreamento de alterações. Confirme que o banco de dados não usa estes recursos.

  • Analise a lista de recursos do banco de dados que são modificados em bancos de dados parcialmente contidos. Para obter mais informações, consulte Funcionalidades modificadas (Banco de dados contido).

  • Consulte sys.dm_db_uncontained_entities (Transact-SQL) para localizar recursos ou objetos independentes no banco de dados. Para obter mais informações, veja.

  • Monitore o XEvent database_uncontained_usage para identificar quando recursos não contidos são usados.

Habilitar bancos de dados contidos

Os bancos de dados contidos devem estar habilitados na instância do Mecanismo de Banco de Dados do SQL Server antes que bancos de dados contidos possam ser criados.

Habilitando bancos de dados independentes usando Transact-SQL

O exemplo a seguir habilita bancos de dados independentes na instância do Mecanismo de Banco de Dados do SQL Server.

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

Habilitando bancos de dados independentes usando o Management Studio

O exemplo a seguir habilita bancos de dados independentes na instância do Mecanismo de Banco de Dados do SQL Server.

  1. No Pesquisador de Objetos, clique com o botão direito do mouse no nome do servidor e clique em Propriedades.

  2. Na página Avançado, na seção Contenção, defina a opção Habilitar Bancos de Dados Contidos como Verdadeiro.

  3. Selecione OK.

Convertendo um banco de dados em parcialmente contido

Um banco de dados é convertido para um banco de dados independente alterando a opção CONTAINMENT .

Convertendo um banco de dados em parcialmente contido usando Transact-SQL

O exemplo a seguir converte um banco de dados chamado Accounting em um banco de dados parcialmente contido.

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

Convertendo um banco de dados para parcialmente independente usando o Management Studio

O exemplo a seguir converte um banco de dados em um banco de dados parcialmente independente.

  1. No Pesquisador de Objetos, expanda Bancos de Dados, clique com o botão direito do mouse no banco de dados que será convertido e clique em Propriedades.

  2. Na página Opções , altere a opção Tipo de retenção para Parcial.

  3. Selecione OK.

Migrar usuários para usuários de banco de dados independente

O exemplo a seguir migra todos os usuários baseados em logons do SQL Server para usuários de bancos de dados independentes com senhas. O exemplo exclui os logons que não estão habilitados. O exemplo deve ser executado no banco de dados contido.

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 ;