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:
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, 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.
No Pesquisador de Objetos, clique com o botão direito do mouse no nome do servidor e clique em Propriedades.
Na página Avançado , na seção Retenção , defina a opção Habilitar Bancos de Dados Independentes como True.
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.
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.
Na página Opções , altere a opção Tipo de retenção para Parcial.
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)