Compartilhar via


Migrar para um banco de dados independente parcialmente

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

  • Habilitar bancos de dados parcialmente independentes

  • Convertendo um banco de dados para parcialmente independente

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

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, consulte Bancos de dados contidos.

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

  • 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, consulte Recursos modificados (banco de dados independente).

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

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

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 então 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. Clique em 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. Clique em 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 ;

Consulte também

Referência

sp_migrate_user_to_contained (Transact-SQL)

sys.dm_db_uncontained_entities (Transact-SQL)

Conceitos

Bancos de dados contidos