RESTORE MASTER KEY (Transact-SQL)

適用対象: SQL Server

バックアップ ファイルからデータベースのマスター キーをインポートします。

重要

SQL Server 2022 (16.x) では、Azure Blob Storage にデータベース マスター キーをバックアップし、そこから復元できます。 URL 構文は SQL Server 2022 (16.x) 以降でのみ利用できます。

Transact-SQL 構文表記規則

構文

RESTORE MASTER KEY FROM 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }  
    DECRYPTION BY PASSWORD = 'password'  
    ENCRYPTION BY PASSWORD = 'password'  
    [ FORCE ]  

引数

FILE ='path_to_file'
格納されているデータベース マスター キーへの完全なパスを、ファイル名を含めて指定します。 path_to_file には、ローカル パスまたはネットワーク上の場所を示す UNC パスを指定できます。

URL ='Azure Blob ストレージ URL'
適用対象: SQL Server 2022 (16.x) 以降
Azure Blob ストレージの URL は https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak に類似した形式です。

DECRYPTION BY PASSWORD ='password'
ファイルからインポートされるデータベース マスター キーの暗号化解除に必要なパスワードを指定します。

ENCRYPTION BY PASSWORD ='password'
データベースに読み込まれた後、データベース マスター キーの暗号化に使用されるパスワードを指定します。

FORCE
現在のデータベース マスター キーが開いていない場合や、SQL Server でマスター キーを使用して暗号化された秘密キーの一部を暗号化解除できない場合でも、RESTORE の処理を継続します。

注釈

マスター キーを復元するとき、 SQL Server では現在アクティブなマスター キーによって暗号化されたすべてのキーの暗号化が解除された後、復元されたマスター キーを使用してこれらのキーが暗号化されます。 この操作はリソースを大量に消費するため、リソース要求が少ないときに実行するように考慮してください。 現在のデータベースのマスター キーが開いていないか、開けない場合、またはこれにより暗号化されたキーのいずれかの暗号化の解除ができない場合、復元操作は失敗します。

FORCE オプションは、マスター キーを取得できないか、暗号化解除が失敗する場合にのみ使用してください。 取得できないキーによってのみ暗号化されている情報は失われます。

マスター キーがサービス マスター キーで暗号化されている場合は、復元されたマスター キーもサービス マスター キーで暗号化されます。

現在のデータベースにマスター キーが存在しない場合は、RESTORE MASTER KEY によりマスター キーが作成されます。 この新しいマスター キーは、サービス マスター キーで自動的に暗号化されません。

SQL Server 2022 (16.x) 以降を使用している場合、データベースのマスター キーを Azure Blob ストレージから復元するときは、次の前提条件が適用されます。

  1. Azure ストレージ アカウントを取得している。

  2. 格納済みアクセス ポリシーと共有アクセス ストレージを作成する

  3. Shared Access Signature を使用して SQL Server 資格情報を作成する

    詳細については、SQL Server で Azure Blob Storage を使用する方法に関するチュートリアルを参照してください。

アクセス許可

データベースに対する CONTROL 権限が必要です。

次の例では、ファイルからデータベース AdventureWorks2022 のマスター キーを復元します。

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM FILE = 'c:\backups\keys\AdventureWorks2022_master_key'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

次の例では、Azure Blob ストレージからデータベース AdventureWorks2022 のマスター キーを復元します。

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_master_key.bak'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

関連項目

CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
暗号化階層
RESTORE SYMMETRIC KEY