SQL 解説書

GRANT (パッケージ特権)

この形式の GRANT ステートメントは、パッケージに対する特権を付与します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは動的 SQL ステートメントの使用によって発行することができます。 このステートメントは、動的に作成できる実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。

許可

このステートメントの許可 ID には、以下の特権が少なくとも 1 つ含まれている必要があります。

CONTROL 特権を付与するには、SYSADM または DBADM の権限が必要です。

他の GRANT ステートメントについては、GRANT (データベース権限)GRANT (索引特権)GRANT (スキーマ特権)GRANT (サーバー特権)、および GRANT (表、視点、またはニックネーム特権)を参照してください。

構文

            .-,-------------------.
            V                     |
>>-GRANT--------+-BIND---------+--+----------------------------->
                +-CONTROL------+
                |         (1)  |
                '-EXECUTE------'
 
                 (2)
>----ON--PACKAGE-------package-name----------------------------->
 
         .-,------------------------------------.
         V                                      |
>----TO----+-+-------+---authorization-name--+--+--------------><
           | +-USER--+                       |
           | '-GROUP-'                       |
           '-PUBLIC--------------------------'
 

注:

  1. EXECUTE の同義語として RUN を使用できます。

  2. PACKAGE の同義語として PROGRAM を使用できます。

説明

BIND
パッケージをバインドする特権を付与します。 パッケージは、 存在するために BINDADD 権限が与えられたユーザーによってすでにバインドされていなければならないので、 BIND 特権は実際には再バインド特権です。

ユーザーには、BIND 特権に加えて、 プログラムに含まれている静的 DML ステートメントによって参照される表ごとに必要な特権が与えられていなければなりません。 これは、静的 DML ステートメントに対する許可がバインド時に検査されるので必要になります。

CONTROL
パッケージを再バインド、除去、または実行するための特権、 およびパッケージ特権を他のユーザーに与える特権を付与します。 パッケージの作成者には、自動的にパッケージに対する CONTROL 特権が与えられます。 パッケージ所有者は、パッケージ・バインダーか、 またはバインド / プリコンパイル時に OWNER オプションを使って指定した ID です。

CONTROL 権限を付与される authorization-name には、 自動的に BIND と EXECUTE が付与されます。

EXECUTE
パッケージを実行する特権を与えます。

ON PACKAGE package-name
特権の対象となるパッケージの名前を指定します。

TO
特権を誰に与えるかを指定します。

USER
authorization-name がユーザーであることを指定します。

GROUP
authorization-name がグループ名であることを指定します。

authorization-name,...
1 人または複数のユーザーまたはグループの許可 ID をリストします。

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

PUBLIC
すべてのユーザーに特権を付与します。

規則

例 1: PACKAGE CORPDATA.PKGA に対する EXECUTE 権限を PUBLIC に与えます。

GRANT EXECUTE
     ON PACKAGE CORPDATA.PKGA
      TO PUBLIC

例 2: パッケージ CORPDATA.PKGA に対する EXECUTE 権限を EMPLOYEE という名前のユーザーに与えます。 EMPLOYEE と呼ばれるグループもユーザーも存在していません。

  GRANT EXECUTE ON PACKAGE
     CORPDATA.PKGA TO EMPLOYEE

または

  GRANT EXECUTE ON PACKAGE
     CORPDATA.PKGA TO USER EMPLOYEE


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]