REVOKE (パッケージ特権)
この形式の REVOKE ステートメントは、パッケージに対する特権を除去します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むことができ、また対話式に呼び出すこともできます。 これは、動的に準備できる実行可能ステートメントです。
権限
このステートメントの権限 ID が保持する特権には、少なくとも以下の 1 つ が含まれていなければなりません。
- ステートメント内で識別された、それぞれのパッケージごとに、
- このステートメントで指定されるすべての特権
- パッケージに対する *OBJMGT システム権限
- パッケージが含まれるスキーマに対する USAGE 特権
- データベース管理者権限
- セキュリティー管理者権限
構文
.-PRIVILEGES-. >>-REVOKE--+-ALL--+------------+-+--ON PACKAGE------------------> | .-,-----------. | | V | | '---+-ALTER---+-+-----' '-EXECUTE-' .-,------------. V | >----package-name-+---------------------------------------------> .-,---------------------------------. V | >--FROM----+-+-------+--authorization-name-+-+----------------->< | +-USER--+ | | '-GROUP-' | '-PUBLIC------------------------'
説明
- ALL または ALL PRIVILEGES
- 各権限名 から 1 つ以上のパッケージ特権を取り消します。
取り消される特権は、識別されたパッケージに関して、権限名 に認可されていた特権です。
パッケージに対する ALL PRIVILEGES を取り消すのは、*ALL システム権限を取り消すのと同じではないことに注意する必要があります。
ALL を使用しない場合には、以下にリストしたキーワードの 1 つ以上を使用する必要があります。各キーワードは、そこで説明されている特権を取り消します。
- ALTER
- COMMENT および LABEL ステートメントを使用する特権を取り消します。
- EXECUTE
- パッケージ内のステートメントを実行する特権を取り消します。
- ON PACKAGE package-name
- EXECUTE 特権が取り消されるパッケージを指定します。 このパッケージ名 は、現行サーバーに存在してい るパッケージを識別していなければなりません。
- FROM
- 特権を取り消すユーザーを識別します。
- USER
- authorization-name がユーザー・プロファイルであることを指定します。USER が指定される場合、authorization-name はユーザー・プロファイルでなければなりません。
- GROUP
- authorization-name がグループ・プロファイルであることを指定します。GROUP が指定される場合、authorization-name はグループ・プロファイルでなければなりません。
- authorization-name,…
- 1 つ以上の権限 ID をリストします。同じ権限名 は、複数回指定してはなりません。
- PUBLIC
- PUBLIC に対する特権の付与を取り消します。詳しくは、権限、特権、およびオブジェクト所有権を参照してください。
注
複数の認可: パッケージに対する特権を取り消した場合は、 どのユーザーが認可を行ったかには関係なく、そのパッケージに対する特権の認可はすべて無効になります。
WITH GRANT OPTION の取り消し: WITH GRANT OPTION を 取り消す唯一の方法は、ALL を指定して取り消すことです。
特権の警告: ユーザーから特定の特権を取り消しても、 そのユーザーがその特権を必要とする操作を実行できなくなるとは限りません。 例えば、そのユーザーは引き続き PUBLIC による特権またはデータベース管理者権限を持つ場合があります。
対応するシステム権限: パッケージ特権を取り消すと、 対応するシステム権限が取り消されます。 SQL 特権に対応するシステム権限の説明については、 GRANT (パッケージ特権)を参照してください。
代替構文: 以下のキーワードは、旧リリースとの互換性を維持するためにサポートされている同義語です。 これらのキーワードは標準キーワードではないので、原則として使用しないようにしてください。
- EXECUTE の同義語としてキーワード RUN を使用することができます。
- PACKAGE の同義語として、キーワード PROGRAM を使用することができます。
例
例 1: PUBLIC から、パッケージ PKGA に関する EXECUTE 特権を取り消します。
REVOKE EXECUTE
ON PACKAGE PKGA
FROM PUBLIC
例 2: ユーザー FRANK および PUBLIC から、 パッケージ RRSP_PKG に関する EXECUTE 特権を取り消します。
REVOKE EXECUTE
ON PACKAGE RRSP_PKG
FROM FRANK, PUBLIC