- 締切済み
ACCESS DB起動時パスワードを設定するには(複数で使用)
WIN XP、ACCESS2000で顧客管理のDBを使用しています。 プリンターなどの関係もあり アクセスは現在一台のパソコンを複数で使用しています。 複数の使用者(一度にアクセスを使うことはない)がDB起動時にパスワードを入力しないとDBに入ることが出来ないようにしたいのですができますでしょうか? (ツール⇒セキュリティー⇒ユーザーの設定はしました) また「誰がいつDBを開いたか」「DB書き込んだ人は誰か」などログのようなものの表示や設定などもできるのでしょうか? 教えてください。よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- BENZ320E
- ベストアンサー率0% (0/1)
以前に自分も貴方の言われる事を100%実現出来ました。 1、パスワードについてはロジックを自分で組むより 回答No2のやり方でフォーム単位とかテーブル単位 とかで十分なセキュリティーの管理が出来ました。 2、ログについては自前でプログラムするしか方法はありませんでした。 サンプルとして以下はその時のソースです。 D!MSG = "閉じる"と固定になっていますが この所を工夫すれば好きな記録が残せます。 Public Function LOG_WRITE() Dim ACT_FORM As String Dim DB As DATABASE, D As Recordset Set DB = CurrentDb() Set D = DB.OpenRecordset("ログ") ACT_FORM = Screen.ActiveForm.Name D.AddNew D!日 = Date$ D!時間 = Time$() D!アプリケーション = ACT_FORM D!利用者 = CurrentUser() D!MSG = "閉じる" D.Update End Function
- O_cyan
- ベストアンサー率59% (745/1260)
>ユーザーID及びパスワードのウィンドウは表示されませんでした。 >この部分は別の設定が必要なのでしょうか? 説明不足ですいません。m(__)m ユーザーIDでチェックされるのはPCを立ち上げる時にユーザーを選択して立ち上げる場合でPCのパーソナルユーザーをチェックしています。LANで使用する場合とか誰が立ち上げたPCなのかというチェックです。 使用する個人ごとにPCを立ち上げてAccessを使用する場合などです。特にそのような運用をしていないのであれば必要ありません。データベースパスワードでの運用となります。下記に個別のIDの代用も含めて書きます。 >「ID等を保存するテーブルを作って・・・」というのは >同じDB内にテーブルを作るのでしょうか 誰が書き込んだかなどのLogをPC内に取るには最低VBが必要になります。 しかし簡単にやるにはAccess内でテーブルを作りLogのように追加保存していくようにすれば出来ます。 まずIDとパスワードを保存するテーブルとLogテーブルを作ります。 Accessを起動するときにIDとパスワードを入力するフォームを作り起動時に最初にそのフォームを開くように起動時の設定をします。 パスワードのフォームに入力されたIDとパスワードがパスワードのテーブルのレコードと合っているか確認しOKならテーブル等を使えるようにしNGならAccessを終了するようにマクロでも組めば良いと思います。後は各テーブルにIDとシステム日付を保存するフィールドを追加します。 入力されたIDをLogテーブルにPCのシステム日付と一緒に追加保存すれば「いつ」「誰が」という項目はテーブルに保存できます。そのIDを変数に代入するかパスワードのフォームを最小化しておけばそれからIDを取得できるのでテーブルに書き込む様な処理はフォームを使って処理しデータと共にテーブルにIDとシステム日付を保存するようにすればLogテーブルと書き込まれたテーブルのIDとシステム日付フィールドを参照して何が書き込まれたか検索できるようになります。この場合テーブルからレコードを削除すると何を削除したかは判りませんが。 削除もフォームを使って処理するようにすればVB等で何テーブルの何のレコードを削除したか別のテーブルに保存することも出来ます。 雑然と書いてしまいましたがこの様な感じで出来ます。
- O_cyan
- ベストアンサー率59% (745/1260)
>現在はパスワードなしでDBに入ることもできてしまう パスワード設定が正しく出来ていないのではないでしょうか。データベースパスワードを再度設定しなおしてみてください。(パスワードを設定する前にmdbのバックアップは取っておいてください。) データベースパスワードが設定できれば後はユーザーレベルの権限を与えてユーザーアカウントを作ればまずまずのセキュリティにはなります。 後はヘルプの Accessのセキュリティの概要 でも参照してみてください。 >「誰がいつDBを開いたか」「DB書き込んだ人は誰か」・・ >ログのようなものの表示や設定などもできるのでしょうか 「誰が」というのはそのままでは記録できません。開いたりする際にID等を保存するテーブルでも作って開いた人のIDや時間をテーブルに保存するようにしないとダメでしょう。
お礼
O_cyan様 ご回答ありがとうございました。 排他モードでツール⇒セキュリティー⇒パスワードの設定で再度パスワードを設定したら、1パスワードの設定が出来ました。 今から全員のユーザーとパスワードを再設定してみます。 本当にありがとうございました。
補足
ご回答ありがとうございました。 排他モードで1パスワードの設定ができました。 DBを開くとともにパスワードウィンドウが表示されるようになりました。 その状態でユーザーを新規登録しセキュリティーレベルを設定したのですが DBを開くとともに ユーザーID及びパスワードのウィンドウは表示されませんでした。この部分は別の設定が必要なのでしょうか?? また「ID等を保存するテーブルを作って・・・」というのは 同じDB内にテーブルを作るのでしょうか?また別にDBを作るのでしょうか?このレベルになるとVBAなどの知識がないと難しいのでしょうか? 教えてください。 よろしくお願いいたします。
- carloshideki
- ベストアンサー率32% (22/67)
ツール → セキュリティ → データベースのパスワード設定 でよいのでは?
補足
早速お返事いただきありがとうございます。 ユーザー設定し そのパスワードを入れると「確認してください」と表示されます。 現在はパスワードなしでDBに入ることもできてしまう状態です。 ユーザー設定がおかしいのでしょうか??
お礼
早速ご回答いただきありがとうございました。 できるかもと思いながら その方法が全く思いつかなかったので 出来る方法をずばりお答え頂きとてもうれしいです。 ただ現在の私では作ることができないので 急ぎ(すぐにでもやらなきゃななので・・・)もう少し勉強してからチャレンジしたいと思います。 取り急ぎ ありがとうございました。