Compartilhar via


Migrar para um banco de dados parcialmente independente

Aplica-se: SQL Server

Este tópico discute como preparar para alterar para o modelo de banco de dados independente parcialmente e, em seguida, fornece as etapas de migração.

Neste tópico:

Preparando para migrar um banco de dados

Analise os itens a seguir se desejar migrar um banco de dados para o modelo de banco de dados independente parcialmente.

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

  • Você deve entender os riscos que são exclusivos para bancos de dados independentes parcialmente. Para obter mais informações, consulte Security Best Practices with Contained Databases.

  • Bancos de dados independentes não oferecem suporte à replicação, Change Data Capture ou controle de alterações. Confirme que o banco de dados não usa estes recursos.

  • Analise a lista de recursos de banco de dados que são modificados para bancos de dados independentes parcialmente. Para obter mais informações, veja Recursos modificados (Banco de dados independente).

  • 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 ver quando são usados recursos dependentes.

Habilitar bancos de dados independentes

Os bancos de dados independentes devem ser habilitados na instância do mecanismo de banco de dados do SQL Server, antes de os bancos de dados independentes poderem 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 Retenção , defina a opção Habilitar Bancos de Dados Independentes como True.

  3. Selecione OK.

Convertendo um banco de dados para parcialmente independente

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

Convertendo um banco de dados para independente parcialmente usando Transact-SQL

O exemplo a seguir converte um banco de dados chamado Accounting para um banco de dados independente parcialmente.

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

Convertendo um banco de dados para independente parcialmente usando Management Studio

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

  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.

Migrando usuários para usuários de bancos de dados independentes

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 independente.

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 ;  

Confira também

Bancos de dados independentes
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)