2009-05-30 6 views
1

ユーザーレベルのセキュリティにより、ユーザーはフォームにアクセスできますが、テーブルにアクセスすることはできませんか?私は、 "SELECT"コマンドを使用してテーブルに接続されたフォームを持っています。それは "更新"または "削除"しません。ユーザーが自分のフォームにアクセスしたいのですが、基になるテーブルの詳細を表示することはできません。私はユーザーレベルのセキュリティウィザードであらゆる種類の組み合わせを試しましたが、何らかの理由でユーザーに完全なアクセス権を与えない限り、フォームが空白になります。何か案は?ところで、私はAccess 2003にいます。フォームのMSアクセスユーザーレベルのセキュリティを読み取るが、テーブルを非表示にする

答えて

2

MDEを作成してユーザーに提供することができます。これを行うと、ユーザーは提供したユーザーインターフェイス以外のものを見ることができなくなります。

テーブルがフォームとクエリと同じAccessデータベースにある場合、まず「データベースを分割してフロントエンドとバックエンドに分割する」必要があります。参照:

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

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

データベースが分割されたら、Accessでフロントエンドを開き、メニューバーから[ツール/データベースユーティリティ/ MDEファイルを作成]を選択してMDEを作成します。 MDEはユーザーに提供するものです。それらは他のデータベースと同じ方法で開きますが、オブジェクトを設計することはできません。

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

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

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

は、以下の資料を参照してください。これにより、ユーザはバックエンドデータベースを開くことができなくなります。より強力なセキュリティが必要な場合は、バックエンドデータベースをSQL Server Expressにアップサイジングできます。詳細:

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

1

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

フロントエンドとバックエンドのデータベースで既にセキュリティウィザードを実行していて、ユーザーがテーブルを読み取る権限を削除していると仮定すると、保存されたクエリをレコードソースとして作成しますあなたのフォームの。クエリのプロパティでは、既定では「ユーザーの権限」として「実行許可」が設定されています。それを「所有者」に変更し、クエリを保存します。照会は、照会の所有者が持つ基本表のどのような許可でも実行されます。完全なアクセス許可を持つ管理者として実行している場合は、保存されたクエリのアクセス許可を読み取り専用に設定する(または、テーブルへの読み取り専用アクセス権を持つユーザーログオンでクエリを作成する)前者を行う)。

いくつかの注意点:

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

  2. ユーザレベルのセキュリティは、誰でも望むことができます。これは有用ではないことを意味するものではなく、単に弾丸ではないことを意味します。私はセキュリティを技術的な問題として多くの人々の問題とみなしているので、それほど心配していません。従業員に十分な権限を与えて仕事をさせなければならず、権限を乱用しないと信じていますあなたはそれらを与えました。

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

+0

このアクセス許可はAccess 2007で見つかりません...すべてのポインタ? – DGM

+0

ACCDBを使用している場合は、ACCDB形式ではJetユーザーレベルのセキュリティがサポートされていないため、そのメッセージは表示されません。ただし、ファイルがMDBの場合は、クエリデザイナーのプロパティシートにそのファイルが存在する必要があります。つまり、実行許可を実行する必要があります。 –

関連する問題