パスワードによるデータベースの保護

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 プロパティを使用します。データベースの作成時には、このプロパティを使用して新しいデータベースのデータベース パスワードを指定できます。暗号化されたデータベースは、常にパスワードで保護されます。