データベース パスワードを設定する方法

◆概要
 この資料は、Microsoft Accessでデータベース パスワードを設定する方法について記載しています。


 権限のないユーザーがアプリケーションを開くことを防止する簡単な方法は、データベースにパスワードを設定することです。アプリケーションを開くことができるユーザーを制御する必要がある場合で、正しいパスワードが入力された後はユーザーを制御する必要がない場合に、この方法を用います。

◆データベースにパスワードを追加するには

  1. データベースを閉じます。データベースをネットワークで共有している場合は、ほかのユーザーがそのデータベースを閉じていることを確認してください。
  2. データベースのバックアップ コピーを作成して、安全な場所に保管しておきます。
  3. [ファイル]メニューの[開く]をクリックします。
  4. [排他]チェック ボックスをオンにして、データベースを開きます。
  5. [ツール]メニューの[セキュリティ]をポイントし、[データベース パスワードの設定]をクリックします。
  6. [パスワード]ボックスにパスワードを入力します。パスワードは大文字と小文字が区別されます。
  7. [確認]ボックスにもう一度パスワードを入力して確認し、[OK]をクリックします。

 これでパスワードが設定されます。データベースを開くたびに、データベースのパスワードを要求するダイアログ ボックスが表示されるようになります。


注意 データベースパスワードは、必ずメモなどに書き留めて、安全な場所に保管してください。パスワードを忘れると、データベースを開いたり、そのデータベースに含まれるデータを使うことができなくなります。

 データベースをレプリケートして運用する予定がある場合は、データベース パスワードは使わないでください。データベースにパスワードを定義すると、データベースのレプリカ間では同期をとることができません。ユーザー レベルのセキュリティ権限を設定した場合は、レプリカの同期には影響しません。データベースのレプリケーションの詳細については、「第20章 アプリケーションでのレプリケーションの使用」を参照してください。


 データベース パスワードを設定すると、[データベース パスワードの設定]コマンドは[データベース パスワードの解除]コマンドに変わります。データベースパスワードを削除するには、[ツール]メニューの[セキュリティ]をポイントし、[データベース パスワードの解除]をクリックします。[データベース パスワードの解除]ダイアログボックスの[パスワード]ボックスにパスワードを入力し、最後に[確認]ボックスで確認します。

データベース パスワードを使用する際の考慮事項

データベース パスワードを使う場合は、次の点を考慮します。

  • データベース パスワードを設定した場合でも、ディスク エディタやその他のユーティリティ プログラムを使って、データベースを開かずにデータを読むことができます。これを防止するには、データベースを暗号化します。
  • [データベース パスワードの解除]コマンドを使うことができるユーザーがデータベースパスワードを知っている場合、そのユーザーは、パスワードを変更または削除できます。ただし、開発者が、データベースの管理者以外のすべてのユーザーおよびグループに対してデータベースの[管理者]権限をオフにしている場合は、パスワードの変更および削除はできません。また、ユーザーがデータベースにパスワードを設定できないようにするには、それらのユーザーやグループに対するデータベースの[管理者]権限をオフにします。得に指定しない限り、[ユーザーグループ]グループ、[管理者グループ]グループ、およびデータベースの開発者(所有者)にはすべてのデータベースの[管理者]権限が与えられます。
  • パスワードを使ってほかのデータベースにリンクされているテーブルを含むデータベースを保護している場合は、リンクが設定されるとパスワードがリンクの一部として保存されます。したがって、リンクを含むデータベースを開くことのできるユーザーは、リンク先のテーブルを開くことができます。また、Accessではパスワードは暗号化されずに保存されます。暗号化されないことによってセキュリティが損なわれる場合は、データベースの保護のためにパスワードを使用しないでください。その代わりに、データベースの機密データへのアクセスを制御するユーザーレベルのセキュリティを設定します。

データ アクセス オブジェクトを使用してデータベース パスワードを制御する

Accessのユーザー インターフェイスを使ってデータベース パスワードを操作する代わりに、Visual Basicコードでデータ アクセス オブジェクト(DAO)を使ってパスワードを制御できます。


重要 開発者がコードでデータベースを開いた後にユーザーがデータベースにパスワードを設定すると、そのコードでデータベースを開くことができなくなります。コードを使ってデータベースを開くときは、データベースを開くことができたかどうかを必ず確認する必要があります。パスワードで保護されたデータベースを開こうとした場合のエラー処理を、コードに含めておく必要があります。

◆コードでデータベース パスワードを設定する

DAOコードでNewPasswordメソッドを使って、データベース パスワードを設定することができます。次のコードでは、受注管理サンプルデータベースを開き、パスワードを設定します。

Sub SetDBPassword()
    ' データベース変数を宣言します。
    Dim dbs As Database
    
    Const conFilePath = _
        "C:\Program Files\Microsoft Office\Office\Samples\"
    
    ' 排他モードでデータベースを開きます。
    Set dbs = OpenDatabase(conFilePath & "Orders.mdb", True)
    
    ' データベース パスワードを設定して、データベースを閉じます。
    dbs.NewPassword "", "topsecret"
    dbs.Close
End Sub

◆パスワードで保護されたデータベースを開く

データベースパスワードの設定後は、正しいパスワードを入力すると、データベースを開くことができます。DAOコードを使ってパスワードで保護されたデータベースを開くには、パスワードを引数sourceの部分に指定します。たとえば、次のコードでは、パスワードで保護された受注管理サンプルデータベースを開きます。

Sub OpenProtectedDB()
    ' データベース変数を宣言します。
    Dim dbs As Database
    
    Const conFilePath = _
        "C:\Program Files\Microsoft Office\Office\Samples\"
        
    ' 共有、読み取り/書き込みアクセス モードでデータベースを開き、
    ' データベース パスワードを指定します。
    Set dbs = OpenDatabase(conFilePath & "Orders.mdb", _
        False, False, ";pwd=topsecret")
End Sub

◆データベース パスワードを変更する

データベース パスワードを変更するには、既存のパスワードおよび新しいパスワードをNewPasswordメソッドに指定します。次の例では、受注管理サンプル データベースのパスワードを"topsecret"から"ultrasecret"に変更します。

Sub ChangeDBPassword()
    ' データベース変数を宣言します。
    Dim dbs As Database
    
    Const conFilePath = _
        "C:\Program Files\Microsoft Office\Office\Samples\"
    
    ' 排他および読み取り/書き込みアクセス モードでデータベースを開いて、
    ' カレント データベース パスワードを指定します。
    Set dbs = OpenDatabase(conFilePath & "Orders.mdb", _
        True, False, ";pwd=topsecret")
        
    ' データベース パスワードを変更して、データベースを閉じます。
    dbs.NewPassword "topsecret", "ultrasecret"
    dbs.Close
End Sub



▼ページトップに戻る