PERMITERRORオプションは、PERMIT文によって読取り権限や書込み権限が拒否されている変数がアクセスされたときに、エラーを通知するかどうかを制御します。
パラメータ
PERMITERRORをNO
に設定すると、PERMIT文によって読取り権限や書込み権限が拒否されている変数がアクセスされたときにエラー条件は発生しません。読取り権限のない値は、NA
と表示されます。書込み権限のない値を変更しようとすると、その要求は無視されます。
(デフォルト)PERMITERRORがYES
である場合、PERMIT文によって読取り権限や書込み権限が拒否されている変数がアクセスされるとエラーが通知されます。このエラーはトラップできますが、このエラーにより、無効なアクセスを開始したOracle OLAP操作は終了します。
使用上の注意
非データ・オブジェクトに対するPERMITERROR
プログラム、モデル、値セットなど、非データ・オブジェクトに対する権限の違反については、PERMITERRORの設定は無視されます。権限がある変数およびリレーションにディメンション性があるかどうかにかかわらず、これらにアクセスしようとした場合、常にPERMITERRORの設定の影響を受けます。
ディメンションのメンテナンス
PERMITERRORの設定は、メンテナンス権限や許可権限の違反については無視されます。ディメンションをメンテナンスする権限および権限を変更する権限に違反しようとすると、常にエラーとして処理されます。同様に、ディメンションに対する読取り権限または書込み権限に違反しようとした場合も、常にエラーとして処理されます。
完全な権限のないデータの取得
PERMITERRORの設定がYES
であり、読取り権限のない値が含まれるディメンション化された変数をフェッチしようとした場合、これらの値のうち最初の値が検出されたときにエラー条件が発生します。レポートを作成する前に、許容される値のみがステータスにあるように前もってディメンションを制限するか、PERMITERRORをNO
に設定することによって、エラー条件の発生を防止できます。
例
例5-90 完全な権限のないレポート
次の例では、price
変数の読取り権限に制約があるために、Tents
以外のproduct
の値については価格データを参照できません。ただし、PERMITERRORをNO
に設定すると、エラー条件を発生させることなく、1996年12月のprice
変数のレポートを生成できます。
PERMITERROR = no DESCRIBE price
この文の出力は次のとおりです。
DEFINE PRICE VARIABLE DECIMAL <MONTH PRODUCT> LD Wholesale Unit Selling Price PERMIT READ WHEN product eq 'Tents'
次の文
LIMIT month TO 'Dec96' REPORT price
によって、次の出力が生成されます。
----PRICE---- ----MONTH---- PRODUCT DEC96 ---------------- ------------- Tents 165.64 Canoes NA Racquets NA Sportswear NA Footwear NA
次の文
PERMITERROR = yes REPORT price
によって、次のエラーが生成されます。
ERROR: You do not have permission to read this value of PRICE
さらに、次の出力が生成されます。
---PRICE--- ---MONTH--- PRODUCT DEC96 --------------- ----------- Tents 165.64