Share via


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

SQL Server Compact データベース エンジンを使用して、ローカル データベースにアクセスするユーザーに対してパスワードの入力を求めることができます。SQL Server Compact では、セキュリティで保護されるデータベースに対してパスワードが 1 つ作成されます。データベースを使用する各ユーザーにパスワードが割り当てられるのではありません。SQL Server Compact データベースには強力なパスワードを使用する必要があります。パスワードは、以下の特性を持ちます。

  • 最大 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 を使用して作成するには、プロバイダー固有のプロパティ DBPROP_SSCE_ENCRYPTIONMODE で暗号化モードを指定し、プロバイダー固有のプロパティ DBPROP_SSCE_DBPASSWORD を使用してパスワードを指定する必要があります。

パスワードで保護されたデータベースへのアクセス

パスワードで保護されたデータベースを開くには、パスワードを入力する必要があります。このデータベースにアクセスするいくつかの方法を以下に示します。

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

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

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

    詳細については、Visual Studio の .NET Compact Framework SDK で、System.Data.SqlServerCe.SqlCeConnection クラスの情報を参照してください。

  • OLE DB を使用する方法

    SQL Server Compact では、ファイル レベルのアクセス制御メカニズムをサポートしています。このメカニズムでは、パスワードで保護された SQL Server Compact データベースにアクセスする際にパスワードが必要です。このパスワードは、データベースを開くたびに渡す必要があります。パスワードを指定するには、プロバイダー固有のプロパティ セット DBPROPSET_SSCE_DBINIT の DBPROP_SSCE_DBPASSWORD プロパティを使用します。データベースの作成時には、このプロパティを使用して新しいデータベースのデータベース パスワードを指定できます。暗号化されたデータベースは、常にパスワードで保護されます。