Como restaurar um banco de dados "contido"? [fechadas]

23

Recentemente, tentei restaurar no meu SQL Server de desenvolvimento local um backup de uma instância de rede. Para minha surpresa, recebi a seguinte mensagem de erro:

Mensagem 12824, Nível 16, Estado 1, Linha 3 O valor sp_configure 'autenticação de banco de dados contido' deve ser definido como 1 para restaurar um banco de dados contido. Pode ser necessário usar RECONFIGURE para definir o valor em uso. A mensagem 3013, nível 16, estado 1, linha 3 RESTORE DATABASE está sendo finalizada de maneira anormal.

Quais etapas devo seguir para restaurar com êxito o banco de dados?

David
fonte
2
Qual versão do SQL Server? O erro é bastante claro sobre uma resolução. Você tentou definir o contained database authenticationvalor como 1 como ele disse?
LowlyDBA
1
Acho que essa é uma pergunta válida, se você estiver tentando restaurar um arquivo .bacpac do Banco de Dados SQL do Azure, na sua instância local - você recebe esse erro. A resposta é válida para corrigir isso.
Ralph Willgoss

Respostas:

37

Para restaurar um banco de dados contido em uma instância diferente do servidor sql, nesse caso, meu servidor local, a propriedade " Habilitar bancos de dados contidos " deve ser definida como True .

Você pode fazer isso no estúdio de gerenciamento:

  1. Clique com o botão direito do mouse na instância do servidor, selecione Propriedades
  2. Selecione a página Avançado , configure em Contenção do valor da propriedade como True
  3. Prossiga para restaurar o backup do banco de dados.
  4. ALTER AUTHORIZATION ON DATABASE::ReplaceThisWithYourDatabaseName TO ReplaceThisWithLeastPrivilegeUser;

Aqui estão as linhas de script que eu realmente usei para ativar / desativar a contenção:

-- Enable "contained database authentication"
EXEC sp_configure 'contained', 1;
RECONFIGURE;

-- Disable "contained database authentication"
EXEC sp_configure 'contained', 0;
-- Force disabling of "contained database authentication"
RECONFIGURE WITH OVERRIDE;

Para obter informações adicionais, consulte:
http://www.sqlsoldier.com/wp/sqlserver/protectionfromrestoringabackupofacontaineddatabase

David
fonte
2

Você já tentou fazer o que o erro está descrevendo?

USE master
GO
sp_configure 'show   advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'CONTAINED DATABASE AUTHENTICATION', 1
GO
RECONFIGURE
GO
sp_configure 'show   advanced options', 0 
GO
RECONFIGURE
GO
Prime03
fonte