スキーマ特権および権限

スキーマ特権は、オブジェクト特権区分に入ります。

オブジェクト特権を 図 1に示します。

図1: オブジェクト特権
オブジェクト特権のカテゴリーを示す図。

スキーマ特権および権限には、データベース内のスキーマ上でのアクションが含まれます。 ユーザー、グループ、ロール、または PUBLIC には、以下の特権のどれでも付与することができます。

  • CREATEIN により、ユーザーはスキーマ内にオブジェクトを作成できます。
  • ALTERIN により、ユーザーはスキーマ内のオブジェクトを変更できます。
  • DROPIN により、ユーザーはスキーマ内からオブジェクトをドロップできます。
  • SELECTIN により、ユーザーはスキーマ内の表で SELECT 照会を実行できます
  • UPDATEIN により、ユーザーはスキーマ内の表を更新できます
  • INSERTIN により、ユーザーはスキーマ内の表にデータを挿入できます
  • DELETEIN により、ユーザーはスキーマ内の表から行を削除できます
  • EXECUTEIN により、ユーザーはスキーマ内で定義したユーザー定義の関数、メソッド、プロシージャー、パッケージ、またはモジュールを実行できます。

スキーマ権限

スキーマ LOAD 権限:

スキーマ LOAD 権限により、ユーザーは、このスキーマに現在定義されている表および将来定義される表のすべてに対して LOAD ユーティリティーを使用できます。ただし、データベースに対する DATAACCESS、このスキーマに対する DATAACCESS、関連する表レベルの特権のいずれかが必要です。 さらに、ユーザーは、このスキーマのオブジェクトに対して RUNSTATS を使用できるようになります。

関連する表レベルの特権は以下のとおりです。
  • モード INSERT、TERMINATE (直前の LOAD INSERT を終了するため)、または RESTART (直前の LOAD INSERT を再び開始するため) で LOAD を実行する場合は、その表に対する INSERT 特権。
  • モード REPLACE、TERMINATE (直前の LOAD REPLACE を終了するため)、または RESTART (直前の LOAD REPLACE を再び開始するため) で LOAD を実行する場合は、その表に対する INSERT および DELETE 特権。
  • LOAD の一部として例外表を使用する場合は、その表に対する INSERT 特権

SCHEMAADM 権限:

SCHEMAADM 権限は、1 つのスキーマに対する管理権限を与えます。

このスキーマ管理者は、このスキーマに対して以下を暗黙的に所有します。
  • CREATEIN 特権
  • ALTERIN 特権
  • DROPIN 特権
  • スキーマ LOAD 権限
  • このスキーマの索引/表を再編成する権利
  • このスキーマのオブジェクトに対して RUNSTATS を使用する権利
  • 名前がこのスキーマによって修飾されているパッケージに対する BINDADD 権限

SCHEMAADM 権限の付与は、ACCESSCTRL、ACCESSCTRL、または SECADM 権限を持つユーザーのみが行えます。 SCHEMAADM 権限は、PUBLIC には付与できません。

スキーマ ACCESSCTRL 権限:

スキーマ ACCESSCTRL 権限レベルには、このスキーマに対して以下のステートメントを発行する管理権限があります。
  • GRANT (および REVOKE) SCHEMAADM 権限
  • GRANT (および REVOKE) スキーマ DATACCESS 権限
  • GRANT (および REVOKE) スキーマ LOAD 権限
  • GRANT (および REVOKE) CREATEIN 特権
  • GRANT (および REVOKE) ALTERIN 特権
  • GRANT (および REVOKE) DROPIN 特権
  • GRANT (および REVOKE) SELECTIN 特権
  • GRANT (および REVOKE) INSERTIN 特権
  • GRANT (および REVOKE) UPDATEIN 特権
  • GRANT (および REVOKE) DELETEIN 特権
  • GRANT (および REVOKE) EXECUTEIN 特権
  • このスキーマで定義されたグローバル変数に対する GRANT (および REVOKE) READ、WRITE 特権
  • このスキーマで定義された索引に対する GRANT (および REVOKE) CONTROL 特権
  • このスキーマで定義されたモジュールに対する GRANT (および REVOKE) EXECUTE 特権
  • このスキーマで定義されたパッケージに対する GRANT (および REVOKE) BIND、CONTROL、EXECUTE 特権
  • このスキーマで定義されたルーチンに対する GRANT (および REVOKE) EXECUTE 特権
  • このスキーマで定義されたシーケンスに対する GRANT (および REVOKE) USAGE、ALTER 特権
  • このスキーマで定義された表、ビュー、またはニックネームに対する GRANT (および REVOKE) ALTER、CONTROL、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE 特権
  • このスキーマで定義された XSR オブジェクトに対する GRANT (および REVOKE) USAGE 特権

スキーマ ACCESSCTRL 権限の付与は、ACCESSCTRL 権限または SECADM 権限を持つユーザーのみが行えます。 スキーマ ACCESSCTRL 権限は、PUBLIC には付与できません。

スキーマ DATAACCESS 権限:

スキーマ DATAACCESS 権限レベルには、スキーマ内で以下の特権および権限があります。
  • LOAD 権限
  • SELECTIN 特権
  • INSERTIN 特権
  • UPDATEIN 特権
  • DELETEIN 特権
  • このスキーマで定義されたパッケージに対する EXECUTE 特権
  • このスキーマで定義されたモジュールに対する EXECUTE 特権
  • このスキーマで定義されたルーチンに対する EXECUTE 特権
  • このスキーマに定義されている (読み取り専用の変数を除く) すべてのグローバル変数に対する READ、WRITE 特権
  • このスキーマに定義されているすべての XSR オブジェクトに対する USAGE 特権
  • このスキーマに定義されているすべてのシーケンスに対する USAGE 特権

スキーマ DATAACCESS の付与は、ACCESSCTRL、ACCESSCTRL、または SECADM 権限を持つユーザーのみが行えます。 スキーマ DATAACCESS 権限は、PUBLIC には付与できません。

スキーマの所有者は、CREATEIN、ALTERIN、DROPIN、および SCHEMADM 特権を持っています。 また所有者は、ほかのユーザーに CREATEIN、ALTERIN、および DROPIN を付与する特権を持ちます。 スキーマ・オブジェクト内で操作されるオブジェクトには、表、ビュー、索引、 パッケージ、データ・タイプ、関数、トリガー、プロシージャー、および別名があります。