次の方法で共有


暗号化されたバックアップを作成する

このトピックでは、Transact-SQL を使用して暗号化されたバックアップを作成するために必要な手順について説明します。

暗号化を使用したディスクへのバックアップ

前提条件:

  • データベースのバックアップを作成するための十分な領域を持つローカル ディスクまたはストレージへのアクセス。

  • マスター データベースのデータベース マスター キーと、SQL Server のインスタンスで使用できる証明書または非対称キー。 暗号化の要件とアクセス許可については、「 バックアップ暗号化」を参照してください。

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

  1. マスター データベースのデータベース マスター キーを作成します 。データベースに格納されるマスター キーのコピーを暗号化するためのパスワードを選択します。 データベース エンジンに接続し、新しいクエリ ウィンドウを起動し、次の例をコピーして貼り付け、[ 実行] をクリックします。

    -- Creates a database master key.   
    -- The key is encrypted using the password "<master key password>"  
    USE master;  
    GO  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>';  
    GO  
    
    
  2. バックアップ証明書を作成します。 マスター データベースにバックアップ証明書を作成します。 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    Use Master  
    GO  
    CREATE CERTIFICATE MyTestDBBackupEncryptCert  
       WITH SUBJECT = 'MyTestDB Backup Encryption Certificate';  
    GO  
    
    
  3. データベースをバックアップします。 使用する暗号化アルゴリズムと証明書を指定します。 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    BACKUP DATABASE [MyTestDB]  
    TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'  
    WITH  
      COMPRESSION,  
      ENCRYPTION   
       (  
       ALGORITHM = AES_256,  
       SERVER CERTIFICATE = MyTestDBBackupEncryptCert  
       ),  
      STATS = 10  
    GO  
    
    

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

暗号化を使用した Azure Storage へのバックアップ

SQL Server Backup to URL オプションを使用して Azure Storage へのバックアップを作成する場合、暗号化手順は同じですが、URL を宛先として使用し、SQL 資格情報を使用して Azure Storage に対して認証する必要があります。 暗号化オプションを使用して Microsoft Azure への SQL Server マネージド バックアップを構成する場合は、「 SQL Server Managed Backup を Azure に設定 する」および「 可用性グループ用に SQL Server マネージド バックアップを Azure に設定する」を参照してください。

前提条件:

  • Windows ストレージ アカウントとコンテナー。 詳細については、参照してください。 レッスン 1: Azure Storage オブジェクトを作成する

  • マスター データベースのデータベース マスター キー、および SQL Server のインスタンス上の証明書または非対称キー。 暗号化の要件とアクセス許可については、「 バックアップ暗号化」を参照してください。

  1. SQL Server 資格情報の作成: SQL Server 資格情報を作成するには、データベース エンジンに接続し、新しいクエリ ウィンドウを開き、次の例をコピーして貼り付け、[ 実行] をクリックします。

    CREATE CREDENTIAL mycredential   
    WITH IDENTITY= 'mystorageaccount' - this is the name of the storage account you specified when creating a storage account    
    , SECRET = '<storage account access key>' - this should be either the Primary or Secondary Access Key for the storage account  
    
  2. データベース マスター キーを作成します。 データベースに格納されるマスター キーのコピーを暗号化するためのパスワードを選択します。 データベース エンジンに接続し、新しいクエリ ウィンドウを起動し、次の例をコピーして貼り付け、[ 実行] をクリックします。

    -- Creates a database master key.  
    -- The key is encrypted using the password "<master key password>"  
    USE Master;  
    GO  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>';  
    GO  
    
    
  3. バックアップ証明書を作成します。 マスター データベースにバックアップ証明書を作成します。 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE Master;  
    GO  
    CREATE CERTIFICATE MyTestDBBackupEncryptCert  
       WITH SUBJECT = 'MyTestDBBackupEncryptCert ';  
    GO  
    
    
  4. データベースをバックアップします。 使用する暗号化アルゴリズムと証明書を指定します。 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    BACKUP DATABASE [MyTestDB]  
    TO URL = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'  
    WITH  
      CREDENTIAL 'mycredential' - this is the name of the credential created in the first step.  
      ,COMPRESSION  
      ,ENCRYPTION   
       (  
       ALGORITHM = AES_256,  
       SERVER CERTIFICATE = MyTestDBBackupEncryptCert  
       ),  
      STATS = 10  
    GO