質問

2008年12月07日 01時51分
  • Accessでのユーザレベルセキュリティ

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

質問

Access2003環境でPC管理台帳を構成しています。

いままでは、特にセキュリティをかけずにファイルサーバ上にmdbを配置して、
管理者のみが、データの入力や、テーブル、クエリ設計などを行い、
その他のメンバーは、データ照会のみを許可し、変更が必要な場合は
管理者に対して変更依頼かけるというルールで運用してきました。

ですが最近、いつのまにかデータが改ざんされているという事件が発生しました。
おそらく誰かが照会目的でデータシートビューを開いたときに、誤って変更して
しまったのだと推測しているのですが、遅まきながら
「これはちょっとまずいぞ」ということになり、
ユーザレベルのセキュリティをかけることにしました。

早速、マイクロソフトのサポートオンライン
「Access セキュリティにおけるワークグループ情報ファイルの役割について」
というページを参照してワークグループによるユーザレベルセキュリティを
実装してみました。

各ユーザグループのセキュリティレベルは以下のようにしました。

管理G:何でも出来る
変更G:データの照会とマスタデータ以外の追加・変更・削除が出来る。
照会G:データの照会のみ

と、ここまで出来たということで、一応目的は達成したのですが、
ワークグループによるユーザセキュリティというのは、
上記のセキュリティ設定が登録されたワークグループ情報ファイル(mdw)を
Access起動時に引数に指定してユーザレベルセキュリティを実現する
というものであって、mdbそのものに直接セキュリティ設定されるものではないのです。
(具体的には起動コマンドに引数を指定したショートカットを作成)

従って、前述の引数無しでmdbを開かれてしまった場合は、
何のセキュリティもかかっていない状態になってしまいます。
つまり、結局なんでもできてしまいます。

折角こういったセキュリティをかけるわけなので、
管理者以外は引数無しでmdbにはアクセスできないような仕組にしたいのですが、
何か良い方法は無いでしょうか。
もしくは、他の方法でユーザレベルのセキュリティを実現している
というような例があれば是非教えていただきたいのですが。

#そもそもAccessでこれ以上のユーザレベルセキュリティを求めること自体が
#無理のある話ってことも?

よろしくお願いいたします。

1件の回答があります

回答

Accessのワークグループ情報ファイルでセキュリティを確保するときは、該当mdbについては、「管理者」グループから権限を取り上げるのが基本です。
ワークグループ情報ファイルを指定せずに開いたときは読み取り専用にしたければ、管理者グループに読み取り権限のみを残してやります。

従って、ワークグループ情報ファイルがなくなると、まったく変更できないmdbになります。
私はそれで非常に苦労した経験があります。
読み取り権限を残しておけばデータのインポートはできるので、フォームやレポートのないmdbであれば問題ありませんが。

あまりAccessのワークグループを運用するのはオススメしないので、ファイルサーバーでのアクセス権の制御を使うほうがいいと思います。
対象となるmdbへの書き込み権限を特定のセキュリティグループに属するユーザー以外からは取り上げてしまえばよいのではないでしょうか。
この運用にしたばあいは、mdbを直接開くと「読み取り専用です」と警告が出ます。
リンクテーブルとして用いた場合は、単にデータの書き込みができなくなるだけで、エラーメッセージなどは出ません。

2008年12月12日 02時08分

あなたもコメントしましょう!