0

クエリ(クエリマネージャーに組み込まれている)をデータソースとして使用するXMLパブリッシャーテンプレートがあります。クエリは、機密データを含むカスタムビューを使用します。レポートは、マネージャーが直属の部下の情報を表示するために使用されます。これは、ページでパラメーターを設定することによって実現されます。クエリでレコードを利用できるようにする必要があるため、クエリを作成する権限も持っているマネージャーはレコードを表示でき、レポートを作成した従業員以外の従業員のデータも表示できます。クエリも公開する必要があるため、クエリを実行するためのアクセス権を持つすべてのユーザーがクエリを利用できるようになります。次のことができるようにしたいと思います。

  1. ページを介してのみクエリを利用できるようにします(私はこれを持っていると思います-ページはクエリのWHERE句で比較される追加のパラメータを渡します)

  2. クエリ/レポート以外のユーザーからカスタムレコードを非表示にする

ゼネラルマネージャーは彼らに報告する人々だけを見ることができるはずなので、典型的な行レベルのセキュリティを使用することはできません。

ありがとう

4

2 に答える 2

0

私はXMLPublisherをあまり使用していませんが、これと同様のことをしなければなりませんでした(機密保持要件を除く)。

マネージャーの下で働くすべての人が同じ部門IDで設定されていますか?PSOPRDEFNテーブルには、EmplIDにマップするOPRID /ユーザーIDが格納されており、これをJOBテーブルにリンクして、EmplIDのDeptIDを取得できます。

したがって、クエリの基準を、現在のユーザーの部門IDに制限するものに設定します。Oracle 10gでそれを行う方法の構文を見つけましたが、試してみると11gでは機能していないようです。http://www.techonthenet.com/oracle/functions/user.php http://www.techonthenet.com/oracle/functions/sys_context.php

于 2012-01-13T17:33:41.463 に答える
0

ユーザーが(クエリマネージャーを使用して)特定のレコードをクエリしようとしたときに表示されるデータのセキュリティを有効にするには、データにアクセスしようとしているユーザーを確認できるクエリセキュリティレコードを使用できます。一般に、ここでは動的ビューが使用され、データにアクセスしようとしているOPRIDをチェックして、それに応じてデータを提供できます。Querymanagerは、SQLでクエリセキュリティレコードを自動的に取得します。

于 2012-05-08T07:05:10.370 に答える