データベースの暗号化
SQL Server Compact 4.0 のデータベース エンジンでは、データベースを暗号化できます。暗号化されるデータベースは、データベースのパスワードでも保護されます。
重要
暗号化されたデータベースには、パスワードを使用しないとアクセスできません。そのため、暗号化されたデータベースのパスワードを忘れると、データは復元できなくなります。
暗号化モード
SQL Server Compact 4.0 では、データベースを暗号化するための、以下の暗号化モードをサポートしています。新しい暗号化アルゴリズム (暗号化とハッシュの組み合わせ) が、これらの暗号化モードにマップされています。
高度暗号化標準 (AES) は、SQL Server Compact 4.0 でサポートされているすべてのプラットフォームで、キー サイズが 128 ビットおよび 256 ビットの暗号化に利用できます。セキュア ハッシュ アルゴリズム (SHA) は、キー サイズが 256 ビットおよび 512 ビットのハッシュに利用できます。
Platform Default: このモードで使用されるアルゴリズムは、AES128_SHA256 です。AES128 は 128 ビット キーの暗号化アルゴリズムであり、SHA256 は 256 ビット キーのハッシュ アルゴリズムです。これが、SQL Server Compact 4.0 でサポートされているすべてのプラットフォームでの既定の暗号化モード オプションです。
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)」を参照してください。