¿Cómo restaurar una base de datos "contenida"? [cerrado]

23

Recientemente intenté restaurar en mi SQL Server de desarrollo local una copia de seguridad desde una instancia de red. Para mi sorpresa, recibí el siguiente mensaje de error:

Mensaje 12824, Nivel 16, Estado 1, Línea 3 El valor de sp_configure 'autenticación de base de datos contenida' debe establecerse en 1 para restaurar una base de datos contenida. Es posible que deba usar RECONFIGURE para establecer el value_in_use. Msg 3013, Nivel 16, Estado 1, Línea 3 RESTAURAR BASE DE DATOS está terminando anormalmente.

¿Qué pasos debo seguir para restaurar con éxito la base de datos?

David
fuente
2
¿Qué versión de SQL Server? El error es bastante claro acerca de una resolución, ¿intentó establecer el contained database authenticationvalor en 1 como se dijo?
LowlyDBA
1
Creo que esta es una pregunta válida, si está tratando de restaurar un archivo .bacpac de Azure Sql Database en su instancia local, obtendrá este error. La respuesta es válida para solucionar esto.
Ralph Willgoss

Respuestas:

37

Para restaurar una base de datos contenida en una instancia diferente del servidor sql, en este caso mi servidor local, la propiedad " Habilitar bases de datos contenidas " debe establecerse en True .

Puede hacerlo desde el estudio de gestión:

  1. Haga clic derecho en la instancia del servidor, seleccione Propiedades
  2. Seleccione la página Avanzada , establezca en Contención el valor de la propiedad en Verdadero
  3. Proceda a restaurar la copia de seguridad de la base de datos.
  4. ALTER AUTHORIZATION ON DATABASE::ReplaceThisWithYourDatabaseName TO ReplaceThisWithLeastPrivilegeUser;

Aquí están las líneas de script que realmente utilicé para habilitar / deshabilitar la contención:

-- 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 obtener información adicional, consulte:
http://www.sqlsoldier.com/wp/sqlserver/protectionfromrestoringabackupofacontaineddatabase

David
fuente
2

¿Has intentado hacer lo que describe el error?

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
fuente