パスワードによるデータベースの保護
SQL Server Compact データベース エンジンを使用して、ローカル データベースにアクセスするユーザーに対してパスワードの入力を求めることができます。SQL Server Compact 3.5 では、セキュリティで保護されるデータベースに対してパスワードが 1 つ作成されます。データベースを使用する各ユーザーにパスワードが割り当てられるのではありません。SQL Server Compact 3.5 データベースには強力なパスワードを使用する必要があります。
最大 40 文字まで指定できます。
文字、記号、数字、またはこれらの組み合わせを指定できます。
復元できません。
注意
パスワードを設定しても、クリア テキストとしてデータベース ファイルが開かれてしまうと、そのデータの閲覧を防ぐことはできません。暗号化とパスワードの両方を使用すると、データを暗号化形式で格納し、プログラムによるデータベースへのアクセスを制限することができます。
パスワードで保護されたデータベースの作成
パスワードで保護されたデータベースを作成するには、データベースの作成時にパスワード プロパティを設定します。このデータベースを作成するいくつかの方法を以下に示します。
SQL 構文を使用する方法
パスワードで保護されたデータベースを SQL 構文を使用して作成するには、CREATE DATABASE ステートメントでデータベース パスワードを指定します。DATABASEPASSWORD キーワードの後に、パスワードを単一引用符で囲んで指定する必要があります。以下に例を示します。
CREATE DATABASE "secure.sdf" DATABASEPASSWORD '<enterStrongPasswordHere>'
ADO.NET を使用する方法
パスワードで保護されたデータベースを SqlCeEngine.CreateDatabase メソッドを使用して作成するには、接続文字列にパスワード プロパティを指定する必要があります。以下に例を示します。
"data source=\ssce.sdf; password=<enterStrongPasswordHere>"
詳細については、Visual Studio の .NET Compact Framework ソフトウェア開発キット (SDK) で、System.Data.SqlServerCe.SqlCeEngine クラスに関する情報を参照してください。
OLE DB を使用する方法
暗号化されたデータベースを OLE DB Provider for SQL Server Compact 3.5 を使用して作成するには、プロバイダ固有のプロパティ DBPROP_SSCE_ENCRYPTDATABASE を VARIANT_TRUE として渡し、プロバイダ固有のプロパティ DBPROP_SSCE_DBPASSWORD を使用してパスワードを指定する必要があります。
パスワードで保護されたデータベースへのアクセス
パスワードで保護されたデータベースを開くには、パスワードを入力する必要があります。このデータベースにアクセスするいくつかの方法を以下に示します。
SQL Server Compact 3.5 のデータ プロバイダーを使用する方法
パスワードで保護されたデータベースに SqlCeConnection.Open メソッドを使用してアクセスするには、接続文字列にパスワード プロパティを指定する必要があります。以下に例を示します。
"data source=\ssce.sdf; password=<enterStrongPasswordHere>"
詳細については、Visual Studio の .NET Compact Framework SDK で、System.Data.SqlServerCe.SqlCeConnection クラスの情報を参照してください。
OLE DB を使用する方法
SQL Server Compact 3.5 では、ファイル レベルのアクセス制御メカニズムをサポートしています。このメカニズムでは、パスワードで保護された SQL Server Compact 3.5 データベースにアクセスする際にパスワードが必要です。このパスワードは、データベースを開くたびに渡す必要があります。パスワードを指定するには、プロバイダ固有のプロパティ セット DBPROPSET_SSCE_DBINIT の DBPROP_SSCE_DBPASSWORD プロパティを使用します。データベースの作成時には、このプロパティを使用して新しいデータベースのデータベース パスワードを指定できます。暗号化されたデータベースは、常にパスワードで保護されます。