データベース パスワードを設定する方法
◆概要
この資料は、Microsoft Accessでデータベース パスワードを設定する方法について記載しています。
権限のないユーザーがアプリケーションを開くことを防止する簡単な方法は、データベースにパスワードを設定することです。アプリケーションを開くことができるユーザーを制御する必要がある場合で、正しいパスワードが入力された後はユーザーを制御する必要がない場合に、この方法を用います。
◆データベースにパスワードを追加するには
- データベースを閉じます。データベースをネットワークで共有している場合は、ほかのユーザーがそのデータベースを閉じていることを確認してください。
- データベースのバックアップ コピーを作成して、安全な場所に保管しておきます。
- [ファイル]メニューの[開く]をクリックします。
- [排他]チェック ボックスをオンにして、データベースを開きます。
- [ツール]メニューの[セキュリティ]をポイントし、[データベース パスワードの設定]をクリックします。
- [パスワード]ボックスにパスワードを入力します。パスワードは大文字と小文字が区別されます。
- [確認]ボックスにもう一度パスワードを入力して確認し、[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
▼ページトップに戻る