フォームは読み取れるがテーブルは非表示にするための MS Access ユーザー レベルのセキュリティ

StackOverflow https://stackoverflow.com/questions/930654

  •  06-09-2019
  •  | 
  •  

質問

ユーザー レベルのセキュリティを使用すると、フォームにはアクセスできますが、テーブルにはアクセスできなくなりますか?「SELECT」コマンドを使用してテーブルに接続されたフォームがあります。「更新」や「削除」はしません。ユーザーがフォームにアクセスできるようにしたいのですが、基になるテーブルの詳細を表示できないようにしたいのです。ユーザー レベルのセキュリティ ウィザードであらゆる種類の組み合わせを試しましたが、何らかの理由で、ユーザーに何もするための完全なアクセス権を与えない限り、フォームが空白になります。何か案は?ちなみにAccess2003です。

正しい解決策はありません

他のヒント

あなたはMDEを作成し、ユーザーにそれを与えることができます。あなたがこれを行う場合、ユーザーは、提供されたユーザーインターフェース以外のものを見ることができません。

あなたのテーブルがフォームやクエリと同じAccessデータベースにある場合は、

は、最初にフロントエンドとバックエンドの中に、「データベースを分割」する必要があります。参照してください。

http://databases.about.com/od/tutorials/ss /splitaccessdb.htmする

これを行う方法の詳細については。フロントエンドは、テーブル以外のすべてが含まれています。バックエンドはテーブルが含まれています。フロントエンドは、フロントエンドで「リンクテーブル」オブジェクトを使用してバックエンドのテーブルにリンクされます。

データベースが分割されている

一度、Accessでフロントエンドを開き、選択ツール/データベース・ユーティリティでMDEを作成/メニューバーからMDEファイルを作成します。 MDEは、ユーザーに提供するものです。彼らは、オブジェクトのいずれかを設計することができないことを除いて、それを彼らは他のデータベースと同じように開いています。

MDEがユーザによって開かれたとき、それはエントリポイントを持つようにあなたは、フロントエンドで定義されたAutoExecマクロを持っていることを確認します。ユーザーが最初にフォームを開くためにAutoExecマクロを持っていないので、もし彼らがMDEを開こうとすると、何も起こりません、MDE内のオブジェクトのいずれかを見ることはできません。

[ファイル/開く]ダイアログでバックエンドデータベースに接続するためのユーザーを可能にすることにより、MDE内のリンクテーブルを管理する能力が必要な場合は、次の記事を参照してください。

http://www.mvps.org/access/tables/tbl0009.htm

もちろん、これのどれもが、バックエンドデータベースを開くからユーザーを排除しません。あなたはより強力なセキュリティが必要な場合は、SQL Server Expressにバックエンドのデータベースをアップサイズすることができます。詳細:

http://office.microsoft.com/en-us/access /HA102755371033.aspxする

探しているのは RWOP クエリです。つまり、「所有者の許可を得て実行する」ということになります。

これを機能させるには、フロントエンド データベースとバックエンド データベースでセキュリティ ウィザードをすでに実行しており、ユーザーがテーブルを読み取る権限も削除していることを前提として、保存されたクエリをフォームのレコードソースとして作成します。クエリのプロパティでは、デフォルトでRUN PERMISSIONSが "user's "に設定されています。 これを "owner's "に変更し、クエリを保存する。クエリは、クエリの所有者がベーステーブルに対して持っている権限を使用して実行されます。完全な権限を持つ管理者として実行している場合は、保存されたクエリの権限を読み取り専用に設定することをお勧めします (または、テーブルへの読み取り専用アクセス権を持つユーザー ログオンでクエリを作成します。そのほうがはるかに簡単です)前者を実行します)。

いくつかの注意事項:

  1. ユーザーレベルのセキュリティは注意が必要です。ULS セキュリティ ホワイト ペーパーに記載されている手順を 1 つでも怠ると、アプリは保護されません。これをテストする方法は、既定のワークグループ ファイルで Access を開き、既定の管理者ユーザーとしてログオンしたデータベース内のオブジェクトにアクセスできるかどうかを確認することです。できるなら、どこかで間違いを犯したことになります。

  2. ユーザーレベルのセキュリティは、その気になれば誰でも破ることができます。これは役に立たないという意味ではなく、防弾ではないというだけです。私は、セキュリティは技術的な問題と同じくらい人の問題であると考えているので、そのことについてはあまり心配していません。従業員に仕事をするのに十分な権限を与える必要があり、従業員がその権限を乱用しないと信頼している必要があります。あなたが彼らに与えたのです。

  3. Access 2007 を実行していて ACCDB 形式を使用している場合は、Jet ユーザーレベルのセキュリティが ACCDB 形式でサポートされていないため、RWOP クエリは使用できません。ただし、MDB 形式を使用している場合は、A2007 で問題なく動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top