REVOKE (セキュリティー・ラベル) ステートメント
この形式の REVOKE ステートメントは、ラベル・ベースのアクセス制御 (LBAC) セキュリティー・ラベルを取り消します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、SECADM 権限が含まれている必要があります。
構文
説明
- SECURITY LABEL security-label-name
- セキュリティー・ラベル security-label-name を取り消します。 名前は、セキュリティー・ポリシーを使って修飾する必要があり (SQLSTATE 42704)、現在のサーバー上に存在する (SQLSTATE 42704)、authorization-name によって保有されている (SQLSTATE 42504) セキュリティー・ラベルを識別するものでなければなりません。
- FROM
- 指定されたセキュリティー・ラベルを誰から取り消すかを指定します。
- USER
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループ名であることを指定します。
- ROLE
- authorization-name がロール名であることを指定します。 ロール名は、現行サーバーに存在するものでなければなりません (SQLSTATE 42704)。
- authorization-name,...
- 1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。
規則
- 指定したそれぞれの authorization-name に関して、USER、GROUP、ROLE のいずれも指定されていない場合には、次のようになります。
- 被認可者を authorization-name とする SYSCAT.SECURITYLABELACCESS カタログ・ビューで指定されたオブジェクトのすべての行について、次のことが言えます。
- すべての行の GRANTEETYPE が「U」の場合、USER であると見なされます。
- すべての行の GRANTEETYPE が「G」の場合、GROUP であると見なされます。
- すべての行の GRANTEETYPE が「R」の場合、ROLE であると見なされます。
- すべての行の GRANTEETYPE の値が同じでない場合、エラーが戻されます (SQLSTATE 56092)。
- 被認可者を authorization-name とする SYSCAT.SECURITYLABELACCESS カタログ・ビューで指定されたオブジェクトのすべての行について、次のことが言えます。
例
セキュリティー・ポリシー DATA_ACCESS の一部をなすセキュリティー・ラベル EMPLOYEESECLABEL をユーザー WALID から取り消します。
REVOKE SECURITY LABEL DATA_ACCESS.EMPLOYEESECLABEL
FROM USER WALID