許可 ID とは、 データベース・マネージャーとアプリケーション・プロセスとの間、 またはデータベース・マネージャーとプログラム作成処理との間の接続が確立されるときに、 データベース・マネージャーが獲得する文字ストリングのことです。 これは、特権の集合を指定するものです。 ユーザーやユーザー・グループを指す場合もありますが、 この特性はデータベース・マネージャーからは制御されません。
許可 ID は、データベース・マネージャーにより以下の目的で使用されます。
許可 ID はすべての SQL ステートメントに適用されます。 静的 SQL ステートメントに適用される許可 ID は、 プログラムのバインディングの過程で使用される許可 ID です。 動的 SQL ステートメントに適用される許可 ID は、 その動的 SQL ステートメントを発行したパッケージに対してバインド時に提供された DYNAMICRULES オプションによって決まります。 DYNAMICRULES RUN を使用してバインドされたパッケージの場合は、 パッケージを実行するユーザーの許可 ID が許可 ID として使用されます。 DYNAMICRULES BIND を使用してバインドされたパッケージの場合は、 パッケージの許可 ID が許可 ID として使用されます。 これは実行時許可 ID と呼ばれます。
SQL ステートメントで指定される許可名 を、 そのステートメントの許可 ID と混同してはなりません。 許可名は、種々の SQL ステートメントで使用される識別子です。 許可名は、スキーマの所有者を指定するために CREATE SCHEMA ステートメントで使用されます。 許可名は、 付与または取り消しの対象を指定するために GRANT および REVOKE ステートメントで使用されます。 X に特権を付与するということは、それ以降、 その特権を必要とするステートメントの許可 ID が、 X またはグループ X のメンバーになることが前提となっていることに注意してください。
例:
GRANT SELECT ON TDEPT TO KEENE
SMITH はこのステートメントの許可 ID です。 したがって、動的 SQL ステートメントでの CURRENT SCHEMA 特殊レジスターのデフォルト値と、 静的 SQL でのデフォルトの QUALIFIER プリコンパイル / バインド・オプションは SMITH です。 このため、このステートメントを実行できる権限は、SMITH に対して検査され、 SMITH が 命名規則と暗黙オブジェクト名修飾で説明されている修飾規則に基づく table-name 暗黙修飾子となります。
KEENE はこのステートメントでの許可名です。 KEENE には SMITH.TDEPT に対する SELECT 特権を付与されます。
DROP TABLE TDEPT
は、SMITH.TDEPT 表を削除します。
DROP TABLE SMITH.TDEPT
は、SMITH.TDEPT 表を削除します。
DROP TABLE KEENE.TDEPT
これは、KEENE.TDEPT 表を削除することになります。 KEENE.TDEPT と SMITH.TDEPT は別の表であることに注意してください。
CREATE SCHEMA PAYROLL AUTHORIZATION KEENE
KEENE は、PAYROLL と呼ばれるスキーマを作成するステートメントで指定されている許可名です。 KEENE は、スキーマ PAYROLL の所有者であり、 CREATEIN、ALTERIN、および DROPIN 特権が与えられ、 このような特権を他のユーザーに付与することができます。