REVOKE (索引特権) ステートメント

この形式の REVOKE ステートメントは、索引に対する CONTROL 特権を取り消します。

呼び出し

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

許可

このステートメントの許可 ID が持つ特権には、ACCESSCTRL または SECADM 権限が含まれているか、または索引が含まれるスキーマに対する ACCESSCTRL 権限が含まれている必要があります。

構文

Read syntax diagramSkip visual syntax diagramREVOKE CONTROL ON INDEXindex-name FROM ,USERGROUPROLEauthorization-namePUBLIC BY ALL

説明

CONTROL
索引をドロップする特権を取り消します。 これは、索引に対する CONTROL 特権であり、 この特権は索引の作成者に自動的に付与されます。
ON INDEX 索引名
その CONTROL 特権を取り消す索引の名前を指定します。
FROM
特権を誰から取り消すかを指定します。
ユーザー
authorization-name がユーザーであることを指定します。
GROUP
authorization-name がグループ名であることを指定します。
ROLE
authorization-name がロール名であることを指定します。
権限名
1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。

この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。

PUBLIC
PUBLIC から特権を取り消します。
BY ALL
特権の付与者にかかわらず、 その特権を明示的に付与されたユーザーのうち指定された人から取り消します。 これがデフォルトの動作です。

ルール

  • 指定したそれぞれの authorization-name に関して、USER、GROUP、ROLE のいずれも指定されていない場合には、次のようになります。
    • 被認可者が authorization-name である SYSCAT.INDEXAUTH カタログ・ビュー内の指定されたオブジェクトのすべての行について、以下が該当します。
      • すべての行の GRANTEETYPE が「U」の場合、USER であると見なされます。
      • すべての行の GRANTEETYPE が「G」の場合、GROUP であると見なされます。
      • すべての行の GRANTEETYPE が「R」の場合、ROLE であると見なされます。
      • すべての行の GRANTEETYPE の値が同じでない場合、エラーが戻されます (SQLSTATE 56092)。

  • 特定の特権の取り消しにより、アクションを実行する権限が取り消されるとは限りません。 PUBLIC、グループ、またはロールが他の特権を持っている場合、またはユーザーが索引のスキーマに対する ALTERIN などの権限を持っている場合には、ユーザーは作業を続行できます。

  • 例 1: USER4 はユーザーであり、グループではない場合に、 ユーザー USER4 から索引 DEPTIDX をドロップする特権を取り消します。
       REVOKE CONTROL ON INDEX DEPTIDX FROM KIESLER
  • 例 2: 索引 LUNCHITEMS をユーザー CHEF およびグループ WAITERS からドロップするための特権を取り消します。
       REVOKE CONTROL ON INDEX LUNCHITEMS
         FROM USER CHEF, GROUP WAITERS