SQL 解説書

GRANT (データベース権限)

この形式の GRANT ステートメントは、 データベース全体に適用される権限 (データベース内の 特定のオブジェクトに適用される特権ではなく) を付与します。

呼び出し

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

許可

DBADM 権限を付与するには、SYSADM 権限が必要です。 その他の権限を付与するには、DBADM 権限、または SYSADM 権限のいずれかが必要です。

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

構文

            .-,------------------------.
            V                          |
>>-GRANT--------+-BINDADD-----------+--+--ON DATABASE----------->
                +-CONNECT-----------+
                +-CREATETAB---------+
                +-CREATE_NOT_FENCED-+
                +-IMPLICIT_SCHEMA---+
                +-DBADM-------------+
                '-LOAD--------------'
 
         .-,------------------------------------.
         V                                      |
>----TO----+-+-------+---authorization-name--+--+--------------><
           | +-USER--+                       |
           | '-GROUP-'                       |
           '-PUBLIC--------------------------'
 

説明

BINDADD
パッケージを作成する権限を付与します。 パッケージの作成者には自動的にそのパッケージに対する CONTROL 特権が与えられ、 後で BINDADD 権限が取り消されたとしてもその特権はそのまま保持されます。

CONNECT
データベースにアクセスする権限を与えます。

CREATETAB
基礎表を作成する権限を付与します。 基礎表の作成者には、自動的にその表に対する CONTROL 特権が与えられます。 後で CREATETAB 権限が取り消されたとしても、作成者はこの特権を保持したままになります。

視点作成に必要な明示的な権限は特にありません。 視点の作成に使用するステートメントの許可 ID に各視点の基礎表に対する CONTROL 特権または SELECT 特権のいずれかが与えられている場合には、 いつでも視点を作成できます。

CREATE_NOT_FENCED
データベース・マネージャーの処理の中で実行する関数を登録する権限を与えます。 そのようにして登録された関数が不利な副作用を引き起こすことがないように注意してください (詳細については、 *** ページの FENCED 文節または NOT FENCED 文節を参照してください)。

関数が非分離として登録された場合は、 それ以降に CREATE_NOT_FENCED が取り消されたとしてもその方式での実行が続けられます。

IMPLICIT_SCHEMA
スキーマを暗黙的に作成する権限を与えます。

DBADM
データベース管理者の権限を付与します。 データベース管理者にはデータベース中のすべてのオブジェクトに対する特権が与えられ、 また他のユーザーにそれらの特権を与えることができます。

BINDADD、CONNECT、CREATETAB、CREATE_NOT_FENCED および IMPLICIT_SCHEMA は、 DBADM 権限を与えられている authorization-name に自動的に与えられます。

LOAD
このデータベースでロードを実行する権限を付与します。 この権限を付与されたユーザーは、 このデータベースにおいて LOAD ユーティリティーを使用する権利を持ちます。 この権限は、デフォルトで SYSADM と DBADM にも付与されます。 ただし、LOAD 権限しか付与されていないユーザー (SYSADM と DBADM 以外) の場合は、 表レベルでの特権が別に必要になります。 LOAD 特権に加えて、ユーザーは以下の特権を付与されていなければなりません。

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

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

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

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

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

PUBLIC
すべてのユーザーに対して権限を付与します。 DBADM は、PUBLIC に付与することはできません。

規則

例 1: ユーザー WINKEN、BLINKEN、および NOD に、データベースに接続する権限を与えます。

      GRANT CONNECT ON DATABASE TO USER WINKEN, USER BLINKEN, USER NOD

例 2: データベースに対する BINDADD 権限を、D024 という名前のグループに与えます。 システムには、D024 と呼ばれるグループとユーザーの両方が存在しています。

  GRANT BINDADD ON DATABASE TO GROUP D024

GROUP キーワードの指定は必須です。 この指定がない場合、D024 という名前のユーザーとグループが両方とも存在しているのでエラーになります。 D024 グループのメンバーは、いずれもデータベースのパッケージをバインドできるようになります。 しかし、D024 というユーザーはそれは許されません (ただし、 このユーザーがグループ D024 のメンバーでもある場合、 または以前に BINDADD 権限を与えられていた場合、 または BINDADD 権限がユーザー D024 がメンバーとして属している別のグループに与えられていた場合を除きます)。


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