ユーザー・マッピング

ユーザー・マッピングは、フェデレーテッド・サーバー上の 許可 ID とリモート・データ・ソースに接続するために必要な情報との間の関連です。

ユーザー・マッピングを作成するには、以下の情報を CREATE USER MAPPING ステートメントで指定します。
  • ローカル許可 ID
  • サーバー定義で指定されたリモート・データ・ソース・サーバーのローカル名
  • リモート ID およびパスワード

以下に例を示します。


CREATE USER MAPPING FOR <db2inst1>
   SERVER <server_name>
   OPTIONS (
      REMOTE_AUTHID '<admin>',
      REMOTE_PASSWORD '<password>);
説明
  • db2inst1 は、 Db2® インスタンスのローカル許可 ID を指定します。 キーワード USER または PUBLIC、あるいは Db2 インスタンス名を使用する必要があります。 USER は現在の Db2 ユーザー用で、 PUBLIC はすべての Db2 ユーザー用です。
  • server_name は、JDBC データ・ソースに対する CREATE SERVER ステートメントで定義したサーバー定義名を指定します。 ユーザー・マッピングはサーバー・ステートメントと対になります。
  • admin は、リモート・データ・ソース (MySQL など) のリモート・ユーザー ID を指定します。 CREATE SERVER ステートメントで FOLD_ID サーバー・パラメーターを「U」または「L」に設定しない限り、この値は大/小文字が区別されます。
  • password は、リモート・データ・ソース (MySQL など) のリモート・パスワードを指定します。 CREATE SERVER ステートメントで FOLD_PW サーバー・オプションを「U」または「L」に設定しない限り、この値は大/小文字が区別されます。

デフォルトでは、フェデレーテッド・サーバーはユーザー・マッピングを グローバル・カタログ内の SYSCAT.USEROPTIONS ビューに保管して、リモート・パスワードを暗号化します。 代替方法として、ファイルまたは LDAP サーバーなどの外部リポジトリーを使用して、 ユーザー・マッピングを保管することもできます。 フェデレーテッド・サーバーと外部リポジトリーとの間のインターフェースを提供するには、 ユーザー・マッピング・プラグインを作成します。

ユーザー・マッピングをどのように保管する場合でも、それらに対するアクセスを注意深く制限してください。 ユーザー・マッピングで暗号漏えいが発生した場合、リモート・データベース内のデータは、無許可の活動に対してぜい弱になることがあります。

連携コンポーネントでは、パブリック・ユーザー・マッピングを作成して、すべてのローカル・データベース・ユーザーが単一のリモート・ユーザー ID とパスワードを使用してデータ・ソースにアクセスできるようにすることもできます。

ローカル許可 ID は、データベースに接続した許可 ID を指定するシステム・ユーザーか、現行セッションに使用されている現行のランタイム許可 ID を指定するセッション・ユーザーのいずれかにすることができます。

例えば、認証 ID「Mary」を使用してローカル・データベースに接続したと想定します。 「Mary」にリモート・サーバーへのアクセスを付与するには、次のユーザー・マッピングを作成します (サーバー・オブジェクト「argon」が作成済みであると想定します)。
CREATE USER MAPPING FOR Mary SERVER argon OPTIONS (REMOTE_AUTHID 'remote_ID', REMOTE_PASSWORD 'remote_pw')
この例で、「Mary」はシステム・ユーザーです。 セッション・ユーザーのユーザー・マッピングを作成することもできます。 例えば、セッション・ユーザー名が「sessionuser1」であると想定すると、次のようにユーザー・マッピングを作成できます。
CREATE USER MAPPING FOR sessionuser1 SERVER argon OPTIONS (REMOTE_AUTHID 'remote_ID', REMOTE_PASSWORD 'remote_pw')

「SET SESSION AUTHORIZATION」ステートメントまたは「SET SESSION_USER=」ステートメントを使用すると、SESSION_USER 特殊レジスターの値は「sessionuser1」に変更されますが、リモート・データベースに接続することはできます。

関連情報:

セッション許可 (SESSION AUTHORIZATION)

SESSION_USER

SYSTEM_USER