6

Windows7のMSAccess2010に分割データベースがあります。

バックエンドは、一部のユーザーのみが書き込み権限を持っているフォルダー内のネットワークドライブ上にあります。誰もが読み取り権限を持っています。

すべてのユーザーは、ローカルマシンに保存されているフロントエンドの独自のコピーを持っています。

BEとFEはどちらも、すべてのユーザーに対して排他的ではなく共有として開くように設定されています。

読み取り専用権限を持つユーザーが、読み取り専用権限を持つ別のユーザーがオンになっているときに乗ろうとすると、問題なく乗ることができます。

読み取り専用の権限を持つユーザーが書き込み権限のあるユーザーが開いているときに乗ろうとすると、「ファイルは既に使用されています」というメッセージが表示され、データベースを開くことができません。

書き込み権限を持つユーザーが読み取り専用権限を持つユーザーがデータベースを開いているときにデータベースを開こうとすると、このユーザーに対しても読み取り専用としてデータベースが開きます。

分割データベースのすべてのユーザーはフルアクセスが必要ですか?誰もが編集できるようにしたくありません。これを機能させるために私にできることはありますか?

4

1 に答える 1

9

.laccdbこの問題は、データベースファイルが存在する共有フォルダーへの書き込み権限がないため、読み取り専用クライアントがロックファイルを管理できないという事実と確かに関係があります。

データベースが共有モードで開かれると、各クライアントはロックファイルを作成または更新します。
読み取り専用クライアントはロックファイルを作成できないため、排他モードであると信じてフォールバックする可能性があります。
フルアクセスクライアントがロックファイルを作成すると、後続のクライアントはそれを使用しようとし、読み取り専用クライアントはロックを更新できないため失敗します。

ロックファイルに関するいくつかのドキュメント:.ldbファイルの概要

問題を解決するには、すべてのクライアントにフォルダへのフルアクセスを許可する必要がありますが、.accdbデータベースファイル自体へのアクセスを、その中のデータを変更できないはずのクライアントのグループに制限することができます。

または、Access 2007/2010の機能を使用していない場合は、古い.mdbファイルをバックエンドとして使用するように戻し、古いスタイルのグループセキュリティ機能を使用することができます。

最終的に、本当にアクセスを制御したい場合は、クライアント内から独自のセキュリティスキームをロールバックして、ユーザーにログイン(またはマシンのIDを使用)させ、フォームのデータ編集プロパティを更新する必要があります。その特定のユーザー/マシンに許可されている内容によって異なります。

于 2012-10-19T02:10:31.607 に答える