Comment restaurer une base de données «contenue»? [fermé]

23

J'ai récemment essayé de restaurer dans mon développement local SQL Server une sauvegarde à partir d'une instance réseau. À ma grande surprise, j'ai reçu le message d'erreur suivant:

Msg 12824, niveau 16, état 1, ligne 3 La valeur sp_configure 'authentification de la base de données contenue' doit être définie sur 1 afin de restaurer une base de données contenue. Vous devrez peut-être utiliser RECONFIGURE pour définir la valeur_en_use. Msg 3013, niveau 16, état 1, ligne 3 RESTORE DATABASE se termine anormalement.

Quelles étapes dois-je suivre pour réussir la restauration de la base de données?

David
la source
2
Quelle version de SQL Server? L'erreur est assez claire sur une résolution, avez-vous essayé de définir la contained database authenticationvaleur à 1 comme il l'a dit?
LowlyDBA
1
Je pense que c'est une question valide, si vous essayez de restaurer un fichier .bacpac de base de données Azure Sql, dans votre instance locale - vous obtenez cette erreur. La réponse est valable pour résoudre ce problème.
Ralph Willgoss

Réponses:

37

Afin de restaurer une base de données contenue dans une autre instance du serveur SQL, dans ce cas, mon serveur local, la propriété " Activer les bases de données contenues " doit être définie sur True .

Vous pouvez le faire depuis le studio de gestion:

  1. Cliquez avec le bouton droit sur l'instance de serveur, sélectionnez Propriétés
  2. Sélectionnez la page Avancé , définissez sous Confinement la valeur de la propriété sur Vrai
  3. Procédez à la restauration de la sauvegarde de la base de données.
  4. ALTER AUTHORIZATION ON DATABASE::ReplaceThisWithYourDatabaseName TO ReplaceThisWithLeastPrivilegeUser;

Voici les lignes de script que j'ai réellement utilisées pour activer / désactiver le confinement:

-- 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;

Pour plus d'informations, veuillez consulter:
http://www.sqlsoldier.com/wp/sqlserver/protectionfromrestoringabackupofacontaineddatabase

David
la source
2

Avez-vous essayé de faire ce que l'erreur décrit?

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
la source