データベースの暗号化

SQL Server Compact 4.0 のデータベース エンジンでは、データベースを暗号化できます。暗号化されるデータベースは、データベースのパスワードでも保護されます。

重要

暗号化されたデータベースには、パスワードを使用しないとアクセスできません。そのため、暗号化されたデータベースのパスワードを忘れると、データは復元できなくなります。

暗号化モード

SQL Server Compact 4.0 では、データベースを暗号化するための、以下の暗号化モードをサポートしています。新しい暗号化アルゴリズム (暗号化とハッシュの組み合わせ) が、これらの暗号化モードにマップされています。

高度暗号化標準 (AES) は、SQL Server Compact 4.0 でサポートされているすべてのプラットフォームで、キー サイズが 128 ビットおよび 256 ビットの暗号化に利用できます。セキュア ハッシュ アルゴリズム (SHA) は、キー サイズが 256 ビットおよび 512 ビットのハッシュに利用できます。

  1. Platform Default: このモードで使用されるアルゴリズムは、AES128_SHA256 です。AES128 は 128 ビット キーの暗号化アルゴリズムであり、SHA256 は 256 ビット キーのハッシュ アルゴリズムです。これが、SQL Server Compact 4.0 でサポートされているすべてのプラットフォームでの既定の暗号化モード オプションです。

  2. Engine Default: このモードでは、データベースは AES256_SHA512 を使って暗号化されます。AES256 は暗号化アルゴリズムであり、SHA512 はセキュア ハッシュ アルゴリズムです。SQL Server Compact 3.5 との下位互換性を維持するために、既定のキー サイズが使用されます。

注意

データベースを暗号化するために使用する暗号化の種類は、接続文字列の属性 Encryption Mode で暗号化モードを設定することによって指定できます。設定できる暗号化モードは、Platform Default または Engine Default です。

暗号化されたデータベースの作成

暗号化されたデータベースを作成するには、データベースの作成時に、暗号化プロパティとパスワード プロパティの両方を設定する必要があります。暗号化されたデータベースの作成方法を以下に示します。

  • SQL 構文を使用する方法

    暗号化されたデータベースを SQL 構文を使用して作成するには、database_password を指定します。これにより、データベースが既定で暗号化されます。暗号化モードは、Platform Default になります。次にその例を示します。

    Create Database "secure.sdf" databasepassword '<password>' 
    
  • .NET Compact Framework データ プロバイダーの使用

    パスワードで保護されたデータベースを SqlCeEngine.CreateDatabase メソッドを使用して作成するには、接続文字列にパスワード プロパティを指定する必要があります。以下に例を示します。

    "data source=\secure.sdf;encryption mode=platform default;password=<enterStrongPasswordHere>;
    

    詳細については、MicrosoftVisual Studio ドキュメントの System.Data.SqlServerCe.SqlCeEngine クラスに関する情報を参照してください。

  • OLE DB を使用する方法

    暗号化されたデータベースを OLE DB Provider for SQL Server Compact を使用して作成するには、プロバイダー固有のプロパティ DBPROP_SSCE_ENCRYPTIONMODE で暗号化モードを指定し、プロバイダー固有のプロパティ DBPROP_SSCE_DBPASSWORD を使用してパスワードを指定する必要があります。

暗号化されたデータベースへのアクセス

暗号化されたデータベースを開くには、パスワードを入力する必要があります。暗号化されたデータベースへのアクセス方法を以下に示します。

  • SQL Server Compact のデータ プロバイダーを使用する方法

    パスワードで保護されたデータベースに SqlCeConnection.Open メソッドを使用してアクセスするには、接続文字列にパスワード プロパティを指定する必要があります。以下に例を示します。

    "data source=ssce.sdf; password=<enterStrongPasswordHere>"
    

    詳細については、Visual Studio ドキュメントの System.Data.SqlServerCe.SqlCeConnection クラスに関する情報を参照してください。

  • OLE DB を使用する方法

    パスワードで保護されたデータベースを OLE DB で開くには、プロバイダー固有のプロパティ DBPROP_SSCE_DBPASSWORD を指定する必要があります。

注意

SQL Server Compact の以前のバージョンを使用して作成されたデータベース ファイルを開こうとすると、ファイルを開くことができないというメッセージが表示されます。これは、SQL Server Compact 4.0 のデータベース ファイル形式が以前のバージョンとは異なるためです。SQL Server Compact 4.0 を使用してこのデータベース ファイルを開くには、先にデータベース ファイルをアップグレードする必要があります。

SQL Server Compact 3.1/3.5 データベースを SQL Server Compact 4.0 データベースにアップグレードできますが、SQL Server Compact 2.0 はできません。詳細については、「以前のバージョンからのアップグレード (SQL Server Compact)」を参照してください。

関連項目

タスク

データベースをセキュリティで保護する方法 (Visual Studio)