GRANT (サーバー特権) ステートメント

この形式の GRANT ステートメントは、 指定したデータ・ソースにパススルー・モードでアクセスおよび使用する特権を付与します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの許可 ID が持つ特権には、ACCESSCTRL または SECADM 権限が 含まれている必要があります。

構文

構文図を読む構文図をスキップするGRANT PASSTHRU ON SERVERserver-name TO,USERGROUPROLEauthorization-namePUBLIC

説明

server-name
パススルー・モードで使用する特権が与えられるデータ・ソースを指定します。 server-name (サーバー名) は、 カタログに記述されているデータ・ソースを指定していなければなりません。
TO
特権を誰に付与するかを指定します。
USER
authorization-name がユーザーであることを指定します。
GROUP
authorization-name がグループ名であることを指定します。
ROLE
authorization-name がロール名であることを指定します。 ロール名は、現行サーバーに存在するものでなければなりません (SQLSTATE 42704)。
authorization-name,...
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 であるユーザーも存在しています。
       GRANT PASSTHRU ON SERVER EASTWING TO GROUP D024
    GROUP キーワードの指定は必須です。 この指定がない場合、D024 という名前のユーザーとグループが両方とも存在しているので、 エラーになります (SQLSTATE 56092)。 グループ D024 のメンバーはすべて、EASTWING にパススルーすることができます。 また、ユーザー D024 がこのグループに所属する場合、 このユーザーは EASTWING にパススルーすることができます。