GRANT (シーケンス特権)

この形式の GRANT ステートメントは、シーケンスに対する特権を認可します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むことができ、また対話式に呼び出すこともできます。 これは、動的に準備できる実行可能ステートメントです。

権限

このステートメントの権限 ID が保持する特権には、少なくとも以下の 1 つ が含まれていなければなりません。

  • ステートメント内で識別された、それぞれのシーケンスごとに、
    • このステートメントで指定されるすべての特権
    • シーケンスに対する *OBJMGT システム権限
    • そのシーケンスが入っているライブラリーに対する *EXECUTE システム権限
  • データベース管理者権限
  • セキュリティー管理者権限

WITH GRANT OPTION を指定する場合、ステートメントの権限 ID によって保持される特権には、 少なくとも次の 1 つが含まれていなければなりません。

  • そのシーケンスの所有権
  • データベース管理者権限
  • セキュリティー管理者権限

構文

構文図を読む構文図をスキップする
                 .-PRIVILEGES-.     
>>-GRANT--+-ALL--+------------+-+------------------------------->
          | .-,---------.       |   
          | V           |       |   
          '---+-ALTER-+-+-------'   
              '-USAGE-'             

                 .-,-------------.   
                 V               |   
>--ON -SEQUENCE----sequence-name-+------------------------------>

       .-,---------------------------------.                          
       V                                   |                          
>--TO----+-+-------+--authorization-name-+-+--+-------------------+-><
         | +-USER--+                     |    '-WITH GRANT OPTION-'   
         | '-GROUP-'                     |                            
         '-PUBLIC------------------------'                            

説明

ALL または ALL PRIVILEGES
1 つ以上の特権を認可します。認可される特権は、指定されたシーケンスに対してステートメントの権限 ID が持っている認可可能な特権のすべてです。 シーケンスに対する ALL PRIVILEGES を認可することは、*ALL システム権限を認可するのと同じではないことに注意する必要があります。

ALL を使用しない場合には、以下にリストしたキーワードの 1 つ以上を使用する必要があります。各キーワードは、そこで説明している特権を認可します。

ALTER
シーケンスに対する ALTER SEQUENCE、COMMENT、および LABEL ステートメントを使用する特権を許可します。
USAGE
NEXT VALUE または PREVIOUS VALUE 式内のシーケンスを使用するための特権を認可します。
ON SEQUENCE sequence-name
特権が認可されるシーケンスを指定します。 シーケンス名 は、現行サーバーに存在するシーケンスを示すものでなければなりません。
TO
特権を認可するユーザーを指定します。
USER
authorization-name がユーザー・プロファイルであることを指定します。USER が指定される場合、authorization-name はグループ・プロファイルであってはなりません。
GROUP
authorization-name がグループ・プロファイルであることを指定します。GROUP が指定される場合、authorization-name は ユーザー・プロファイルであってはなりません。
authorization-name,…
1 つ以上の権限 ID をリストします。
PUBLIC
ユーザー (権限 ID) の集合に対して特権を認可します。詳しくは、権限、特権、およびオブジェクト所有権を参照してください。
WITH GRANT OPTION
指定した権限名 が、ON 文節で指定されているシーケンスに対する特権を他のユーザーに 認可できるようにします。

WITH GRANT OPTION の指定がない場合は、指定した権限名 は、 USAGE 特権を別のユーザーに認可することができません。 ただし、指定した権限名が、他の何らかの方法で認可できる権限を 入手した場合 (例えば、*OBJMGT システム権限の認可) を除きます。

対応するシステム権限: GRANT および REVOKE ステートメントは、SQL オブジェクトに対するシステ ム権限の割り当ておよび除去を行います。 次の表は、SQL 特権に対応するシステム権限を示しています。

表 1. シーケンスに対して認可または取り消しされる特権
SQL の特権 シーケンスに対する認可または取り消しに対応するシステム権限
ALL (ALL の認可または取り消しは、ステートメントの権限 ID が持つ特権の みを認可または取り消します。)

*OBJALTER
*OBJOPR
*EXECUTE
*READ
*ADD
*DLT
*UPD
*OBJMGT (取り消しのみ)

ALTER *OBJALTER
USAGE

*OBJOPR
*EXECUTE
*READ
*ADD
*DLT
*UPD

WITH GRANT OPTION *OBJMGT

シーケンスへの権限を検査する際の対応するシステム権限: 次の表は、シーケンスへの権限を検査する際の、SQL 特権に対応するシステム権限を示しています。 左側の欄は、SQL 特権をリストしています。 右側の欄は、同等のシステム権限をリストしています。

表 2. シーケンスへの特権を検査する際の、対応するシステム権限
SQL の特権 対応するシステム権限
ALTER *OBJALTER
USAGE

*OBJOPR および *EXECUTE および
*READ および *ADD および
*DLT および *UPD

任意のユーザーに ORG_SEQ と呼ばれるシーケンスに対する USAGE 特権を認可します。

GRANT USAGE
  ON SEQUENCE ORG_SEQ
  TO PUBLIC