web-dev-qa-db-ja.com

「包含」データベースを復元する方法は?

私は最近、ネットワークインスタンスからバックアップをローカル開発SQL Serverに復元しようとしました。驚いたことに、次のエラーメッセージが表示されました。

メッセージ12824、レベル16、状態1、行3含まれているデータベースを復元するには、sp_configure値 'contained database authentication'を1に設定する必要があります。 value_in_useを設定するには、RECONFIGUREを使用する必要がある場合があります。メッセージ3013、レベル16、状態1、行3 RESTORE DATABASEが異常終了しています。

データベースを正常に復元するには、どのような手順に従う必要がありますか?

27
David

含まれているデータベースをSQLサーバーの別のインスタンス(この場合はローカルサーバー)に復元するには、 "Enable Contained Databases"プロパティを設定する必要がありますtoTrue

これは、管理スタジオから行うことができます。

  1. サーバーインスタンスを右クリックし、プロパティを選択します。
  2. Advancedページを選択し、Containmentの下でプロパティ値をに設定します真
  3. データベースのバックアップの復元に進みます。
  4. ALTER AUTHORIZATION ON DATABASE::ReplaceThisWithYourDatabaseName TO ReplaceThisWithLeastPrivilegeUser;

封じ込めを有効/無効にするために実際に使用したスクリプト行は次のとおりです。

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

詳細については、以下を参照してください。
http://www.sqlsoldier.com/wp/sqlserver/protectionfromrestoringabackupofacontaineddatabase

44
David

エラーの説明を試しましたか?

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
2
Prime03