暗号化されたバックアップの作成

適用対象:SQL Server

この記事では、暗号化されたバックアップを Transact-SQL で作成するために必要な手順について説明します。 SQL Server Management Studio の使用例については、「データベースの完全バックアップの作成」を参照してください。

注意事項

暗号化されたデータベースを復元するには、データベースを暗号化するために使用した証明書や非対称キーにアクセスする必要があります。 証明書または非対称キーがないと、データベースを復元することはできません。 バックアップを保存する必要がある期間中は、データベースの暗号化キーの暗号化に使用した証明書を保存します。 詳細については、「 SQL Server Certificates and Asymmetric Keys」をご覧ください。

前提条件

  • 暗号化されたバックアップのストレージ。 次のいずれかを選択します。

    • データベースのバックアップを作成するための空き領域が十分にあるローカル ディスクまたはストレージ。
    • Azure Storage アカウントとコンテナー 詳しくは、「ストレージ アカウントの作成」をご覧ください。
  • master データベースのデータベース マスター キー (DMK)、SQL Server インスタンス上の証明書または非対称キー。 暗号化の要件とアクセス許可については、「バックアップの暗号化」を参照してください。

データベース マスター キー (DMK) を作成する

データベースに格納する DMK のコピーを暗号化するためのパスワードを指定します。 データベース エンジンに接続して新しいクエリ ウィンドウを開き、次の例をコピーして貼り付け、[実行]を選択します。

<master key password> を強力なパスワードに置き換え、DMK とパスワードの両方のコピーを、安全な場所に保管してください。

USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>';
GO

バックアップ証明書を作成する

master データベースでバックアップ証明書を作成します。 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。

Use master;
GO

CREATE CERTIFICATE MyTestDBBackupEncryptCert
    WITH SUBJECT = 'MyTestDB Backup Encryption Certificate';
GO

暗号化を使用してデータベースをバックアップする

暗号化されたバックアップの作成方法には、主に次の 2 つのオプションがあります。

  • ディスクへのバックアップ
  • Azure Storage にバックアップする

データベースの暗号化されたバックアップをローカル ディスクに作成するには、次の手順を実行します。 この例では、MyTestDB というユーザー データベースを使用します。

使用する暗号化アルゴリズムと証明書を指定します。 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。

<path_to_local_backup> を、SQL Server への書き込みアクセス許可があるローカル パスに置き換えます。 例えば、D:\SQLBackup などです。

BACKUP DATABASE [MyTestDB]
TO DISK = N'<path_to_local_backup>\MyTestDB.bak'
WITH
COMPRESSION,
ENCRYPTION (
    ALGORITHM = AES_256,
    SERVER CERTIFICATE = MyTestDBBackupEncryptCert
),
STATS = 10;
GO

拡張キー管理 (EKM) で保護されているバックアップの暗号化の例については、「Azure Key Vault を使用する拡張キー管理 (SQL Server)」を参照してください。