PERMITRESETコマンドは、権限条件の値を再評価するコマンドです。権限条件は、オブジェクトに関連付けられたPERMITコマンドによって使用される基準を指定する、1つ以上のブール式で構成されます。
権限条件は、ディメンション化される場合、権限のターゲットになるディメンション化されたオブジェクトのPERMITの値を示します。単一セルの権限条件では、特定のユーザーがオブジェクトにアクセスできるかどうかなどのブール基準を示すことができます。
あるオブジェクトについて既存のPERMITコマンドを維持するが、PERMITコマンドと関連付けられている権限条件を再評価する場合、PERMITRESET文を発行します。そのオブジェクトの権限は、オブジェクトをOLAP DML文で次回使用するときに、権限条件の新しい値が基準になります。
構文
PERMITRESET [object_name] [READ|WRITE]
引数
権限条件を再評価するオブジェクトの名前を指定します。オブジェクト名を指定しないと、すべてのオブジェクトの権限条件が再評価されます。
権限条件の再評価を、PERMIT READコマンドのみについて、または指定したオブジェクトのPERMIT READ文について実行します。
権限条件の再評価を、PERMIT WRITEコマンドのみについて、または指定したオブジェクトのPERMIT WRITE文について実行します。
例
例10-79 権限のリセット
次の例では、ユーザー定義のブール・ファンクションusercheckによって変数thisuserの現行値が確認され、その値が100より大きい場合にのみYESが返されます。変数uservarへのアクセスは、thisuserが100より大きい場合にのみ許可されます。ただし、uservarの権限をリセットせずにthisuserの値を100以下に変更した場合でも、アクセスが許可されます。
次の文を発行します。
DESCRIBE uservar
生成される出力は次のとおりです。
DEFINE USERVAR VARIABLE INTEGER PERMIT READ WHEN usercheck(thisuser)
次の文を発行します。
SHOW uservar
生成される出力は次のとおりです。
5
次の文を発行します。
DESCRIBE usercheck
生成される出力は次のとおりです。
DEFINE USERCHECK PROGRAM BOOLEAN
PROGRAM
ARG thisuser INT
TRAP ON errorexit NOPRINT
IF thisuser GT 100
THEN RETURN YES
ELSE RETURN NO
errorexit:
RETURN NO
END
次の文を発行します。
DESCRIBE thisuser
生成される出力は次のとおりです。
DEFINE THISUSER VARIABLE INTEGER
次の文を発行します。
SHOW thisuser
生成される出力は次のとおりです。
101
次の文を発行します。
thisuser = 100 SHOW uservar
生成される出力は次のとおりです。
5
次の文を発行します。
PERMITRESET luservar READ SHOW uservar
次のエラーが生成されます。
ERROR: You do not have permission to read this value of USERVAR