Partilhar via


Migrar para um banco de dados parcialmente contido

Aplica-se a:SQL Server

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

Neste tópico:

Preparando-se para migrar um banco de dados

Analise os itens a seguir ao considerar a migração de 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 contidos.

  • Você deve entender os riscos que são exclusivos de bancos de dados parcialmente contidos. Para obter mais informações, consulte Práticas recomendadas de segurança com bancos de dados contidos.

  • Os bancos de dados contidos não oferecem suporte à replicação, à captura de dados de alteração ou ao controle de alterações. Confirme se o banco de dados não usa esses recursos.

  • Analise a lista de recursos de banco de dados modificados para bancos de dados parcialmente contidos. Para obter mais informações, consulte Recursos Modificados (Banco de Dados Contido).

  • Consulta sys.dm_db_uncontained_entities (Transact-SQL) para localizar objetos ou recursos não contidos no banco de dados. Para obter mais informações, consulte.

  • Monitore o database_uncontained_usage XEvent para ver quando funcionalidades não contidas são usadas.

Habilitar bancos de dados contidos

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

Habilitando bancos de dados contidos usando Transact-SQL

O exemplo a seguir habilita bancos de dados contidos 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 contidos usando o Management Studio

O exemplo a seguir habilita bancos de dados contidos 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 Ativar Bancos de Dados Contidos como Verdadeiro.

  3. Selecione OK.

Convertendo um banco de dados em parcialmente contido

Uma base de dados é convertida numa base de dados contida alterando a opção CONTENÇÃO.

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  

Converter uma base de dados para parcialmente contida usando o Management Studio

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

  1. No Explorador de Objetos, expanda Bases de Dados, clique com o botão direito no banco de dados a ser convertido e depois clique em Propriedades.

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

  3. Selecione OK.

Migrando usuários para usuários de banco de dados contidos

O exemplo a seguir migra todos os usuários baseados em logons do SQL Server para usuários de banco de dados contidos com senhas. O exemplo exclui 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 ;  

Ver também

Bases de Dados Contidas
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)