REVOKE (グローバル変数特権) ステートメント

この形式の REVOKE ステートメントは、作成されたグローバル変数に 1 つ以上の特権を取り消します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの許可 ID が持つ特権には、データベース ACCESSCTRL または SECADM 権限が含まれているか、またはグローバル変数が含まれるスキーマに対するスキーマ ACCESSCTRL 権限が含まれている必要があります。

構文

構文図を読む構文図をスキップするREVOKE ALLPRIVILEGES,READWRITE ONVARIABLEvariable-nameFROM,USERGROUPROLEauthorization-namePUBLICBY ALLRESTRICT

説明

ALL PRIVILEGES
指定されたグローバル変数に対して authorization-name に与えられている特権をすべて取り消します。 ALL の指定がない場合、READ または WRITE を指定する必要があります。 READ または WRITE は複数回指定することはできません。
READ
指定したグローバル変数の値を読み取る特権を取り消します。
WRITE
指定したグローバル変数に値を割り当てる特権を取り消します。
ON VARIABLE variable-name
1 つ以上の特権が取り消されるグローバル変数を指定します。 variable-name は、現行サーバーに存在し、モジュール変数ではないグローバル変数を識別するものでなければなりません (SQLSTATE 42704)。
FROM
特権を誰から取り消すかを指定します。
USER
authorization-name がユーザーであることを指定します。
GROUP
authorization-name がグループであることを指定します。
ROLE
authorization-name が現行サーバーにおける既存のロールを識別することを指定します (SQLSTATE 42704)。
authorization-name,...
1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。 この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
PUBLIC
PUBLIC から指定した特権を取り消します。
BY ALL
指定された各特権を、その付与者にかかわらず、それらの特権を明示的に付与されたユーザーのうち指定された人から取り消します。 これがデフォルトの動作です。
RESTRICT
取り消される特権に依存するオブジェクトがある場合、ステートメントが失敗することを指定します。 これがデフォルトの動作です。

規則

  • 指定した authorization-name ごとに、キーワード USER、GROUP、ROLE のいずれも指定されていない場合には、被認可者が authorization-name である、SYSCAT.VARIABLEAUTH カタログ・ビュー内の指定されたオブジェクトのすべての行において、次のようになります。
    • GRANTEETYPE が U の場合、USER であると見なされます。
    • GRANTEETYPE が G の場合、GROUP であると見なされます。
    • GRANTEETYPE が R の場合、ROLE であると見なされます。
    • GRANTEETYPE の値が同じでない場合、エラーが戻されます (SQLSTATE 56092)。
  • グローバル変数が、取り消される特権に依存するいずれかの SQL 関数、SQL メソッド、プロシージャー、ビュー、トリガー、または別のグローバル変数に含まれている場合、その取り消し操作は失敗します (SQLSTATE 42893)。

  • グローバル変数に対する READ 特権が取り消された場合、(例えば、SET ステートメントにより) グローバル変数の値を書き込むための従属関係を持つパッケージは影響を受けません。これは、グローバル変数への書き込みはそのグローバル変数に対する WRITE 特権により制御されているためです。
  • グローバル変数に対する WRITE 特権が取り消された場合、グローバル変数の値を読み取るための従属関係を持つパッケージは影響を受けません。これは、グローバル変数からの読み取りはそのグローバル変数に対する READ 特権により制御されているためです。
  • 特権を取り消したからといって、必ずしもアクションが実行できなくなるとは限りません。 別のグループまたはロールのメンバーになっている場合、または PUBLIC によりユーザーが必要な特権を保持している場合には、操作を行うことができる場合があります。

グローバル変数 MYSCHEMA.MYJOB_PRINTER に対する WRITE 特権を、ユーザー ZUBIRI から取り消します。
   REVOKE WRITE ON VARIABLE MYSCHEMA.MYJOB_PRINTER FROM ZUBIRI