GRANT (サーバー特権) ステートメント
この形式の GRANT ステートメントは、 指定したデータ・ソースにパススルー・モードでアクセスおよび使用する特権を付与します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、ACCESSCTRL または SECADM 権限が 含まれている必要があります。
構文
説明
- server-name
- パススルー・モードで使用する特権が与えられるデータ・ソースを指定します。 server-name (サーバー名) は、 カタログに記述されているデータ・ソースを指定していなければなりません。
- 今後
- 特権を誰に付与するかを指定します。
- ユーザー
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループ名であることを指定します。
- ROLE
- authorization-name がロール名であることを指定します。 ロール名は、現行サーバーに存在するものでなければなりません (SQLSTATE 42704)。
- 1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。
この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
- PUBLIC
- server-name にパススルーする特権を一連のユーザー (許可 ID) に付与します。 詳細については、『
権限、特権、およびオブジェクト所有権
』を参照してください。
ルール
- 指定したそれぞれの authorization-name に関して、USER、GROUP、ROLE のいずれも指定されていない場合には、次のようになります。
- インスタンスに対して有効なセキュリティー・プラグインによって authorization-name の状況を判別できなければ、エラーが戻されます (SQLSTATE 56092)。
- authorization-name がデータベースでは ROLE として定義され、有効なセキュリティー・プラグインでは GROUP または USER のいずれかとして定義されている場合には、エラーが戻されます (SQLSTATE 56092)。
- 有効なセキュリティー・プラグインに従って authorization-name が USER と GROUP の両方として定義されている場合、エラーが戻されます (SQLSTATE 56092)。
- authorization-name が 有効なセキュリティー・プラグインに従って USER のみとして定義されている場合、または未定義の場合は、USER が想定されます。
- authorization-name が、 有効なセキュリティー・プラグインに従って GROUP としてのみ定義されている場合は、GROUP が想定されます。
- authorization-name がデータベースで ROLE としてのみ定義されている場合には、ROLE であると見なされます。
例
- 例 1: R. Smith と J. Jones に、データ・ソース SERVALL にパススルーする特権を付与します。 この 2 人の許可 ID は RSMITH および JJONES です。
GRANT PASSTHRU ON SERVER SERVALL TO USER RSMITH, USER JJONES
- 例 2: データ・ソース EASTWING にパススルーする特権を、許可 ID が D024 のグループに付与します。 許可 ID が D024 であるユーザーも存在しています。
GROUP キーワードの指定は必須です。 この指定がない場合、D024 という名前のユーザーとグループが両方とも存在しているので、 エラーになります (SQLSTATE 56092)。 グループ D024 のメンバーはすべて、EASTWING にパススルーすることができます。 また、ユーザー D024 がこのグループに所属する場合、 このユーザーは EASTWING にパススルーすることができます。GRANT PASSTHRU ON SERVER EASTWING TO GROUP D024