0

ネットワーク上の多くの人が頻繁にアクセスする MS データベース (.mdb ファイル) があります。ただし、このファイルは間もなく移動される予定であり、移動が行われる前に誰に通知する必要があるかわかりません。

とにかく、このデータベースに間接的にアクセスするすべての人のログを取り始めることはできますか?

データベースが直接開かれたときに起動して重要な情報を記録する VBA スクリプトがあるので、連絡を取ることができますが、ユーザーの大部分は実際にはデータベースを開かず、代わりに独自のローカル データベースを使用しているメインデータベースにリンクされています。

ほとんどのデータベースは、.acccdb 拡張子を使用した 2007/2010 のいずれかです。この「メイン データベース」のみが古い .mdb 拡張子を使用しています。

助言がありますか?

4

1 に答える 1

4

データベースには、ファイル システムとそのネットワーク リダイレクターによって提供されるデータベース プリミティブを使用してアクセスします。そのため、ファイル システムとネットワーク リダイレクターは、誰がファイルにアクセスしているか (そして実際には、誰がファイル内の物理レコードにアクセスしているか) を常に認識しています。

これをログに記録する簡単な方法は、ファイル サーバーの Windows イベント ログ システムのセキュリティ ログを使用することです。これを行うには、データベース ファイルを選択して右クリックし、[プロパティ]、[セキュリティ]、[詳細設定]、[監査] タブの順に選択します。監査リストに「全員」を追加します。「匿名」も追加しますが、「匿名」アクセスを取得すると、より大きな問題が発生します.

また、グループ ポリシー (ドメイン システム上) またはローカル ポリシー (グループ ポリシーなしのシステム/ネットワーク/ワークグループ内のファイル サーバー上) を通じて、「オブジェクト」の監査ログを有効にする必要があります。必要なものは、[Windows の設定] > [セキュリティの設定] > [ローカル ポリシー] > [監査ポリシー] > [オブジェクト アクセスの監査] です。

この情報を取得するために有効にする必要があるログは、データベース ファイルが保存されているサーバー上のログです。リクエストの最後(どこにでもある可能性があります)ではなく、ファイルの最後(1つの場所)でアクセスを記録しています。

edit> ログからクエリを実行してエクスポートするには、サーバーの 1 つにコピーがある場合、「eventquery.vbs」を使用できます。WMI オブジェクトで execquery を使用します。eventquery.vbs がない場合は、PowerShell の代替手段を探すことをお勧めします。

于 2013-10-18T05:50:20.867 に答える