Hitachi

Hitachi Advanced Database システム構築・運用ガイド


2.8.3 自動ロールマッピング機能

ユーザ認証方式がKeycloak認証の場合,KeycloakサーバのクライアントロールとHADBサーバのロールを自動的にマッピングする機能を使用することができます。この機能を自動ロールマッピング機能といいます。この機能を使用すると,HADBユーザがKeycloak認証を使用してHADBサーバに接続するときに,マッピングしているロールのロール利用権限がHADBユーザに自動的に付与されます。それに伴い,ロールに付与されているアクセス権限がHADBユーザに自動的に付与されます。自動ロールマッピング機能の概要を次の図に示します。

図2‒35 自動ロールマッピング機能の概要

[図データ]

[説明]

重要

自動ロールマッピング機能を使用する場合は,次のことを実行する必要があります。

  • CREATE ROLE文でHADBサーバのロールを定義するときに,MAPPING WITH KEYCLOAKオプション※1を指定してください。

  • 自動ロールマッピング機能専用のロールの名称と,Keycloakサーバのクライアントロールの名称※2を同じにしてください。

  • HADBユーザと同じ名称のKeycloakユーザにクライアントロールを割り当ててください。

注※1

このオプションを指定して定義したロールは,自動ロールマッピング機能専用のロールになります。自動ロールマッピング機能専用のロールは,自動ロールマッピング機能でしか使用できません。HADBユーザがGRANT文を実行して,自動ロールマッピング機能専用のロールに対するロール利用権限をほかのHADBユーザに付与することはできません。

注※2

自動ロールマッピング機能専用のロールの名称と,クライアントロールの名称を同じにする必要があるため,クライアントロールの名称はHADBのロールの名称規則に従うようにしてください。HADBのロールの名称規則については,マニュアルHADB SQLリファレンス名前の指定を参照してください。また,クライアントロールの名称は100バイト以下にしてください。

この機能を使用するメリット

この機能を使用すると,GRANT文によるロール利用権限の付与を実行する必要がなくなります。HADBユーザ数が多かったり,同じ部署に所属するHADBユーザには同じアクセス権限を付与したりする場合などは,この機能を使用することでアクセス権限の管理を簡易化できます。具体的には,「2.8.2 ロールの運用の流れ」の「3.HADBユーザ(ADBUSER01ADBUSER02)にロール利用権限を付与する」の操作が不要になります。

留意事項
  • Keycloakユーザにクライアントロールが割り当てられていても,HADBサーバで同じ名称の自動ロールマッピング機能専用のロールが定義されていない場合,自動ロールマッピング機能は動作しません。

  • HADBユーザがHADBサーバに接続する際,自動ロールマッピング機能専用のロールに対するロール利用権限がそのHADBユーザに付与されます(HADBサーバがロール利用権限を付与するGRANT文を実行します)。このとき,GRANT文の実行対象となったロールの名称がKFAA51430-Iメッセージに出力されます。

    ただし,自動ロールマッピング機能専用のロールに対するロール利用権限がすでにHADBユーザに付与されている場合は,GRANT文は実行されません。

  • HADBサーバに接続したHADBユーザに,自動ロールマッピング機能専用のロール以外のロール利用権限が付与されている場合,そのロール利用権限は取り消されます(HADBサーバがロール利用権限を取り消すREVOKE文を実行します)。このとき,REVOKE文の実行対象となったロールの名称がKFAA51430-Iメッセージに出力されます。

  • 自動ロールマッピング機能を使用して,1HADBユーザに対して付与できるロール利用権限の上限は32個です。33個以上のロール利用権限を付与しようとした場合,32個目までのロール利用権限は付与されますが,33個目以上のロール利用権限は付与されません。このとき,KFAA51431-Wメッセージが出力されます。

  • 自動ロールマッピング機能によってマッピングされるロールは,HADBユーザがHADBサーバに接続するときに確定され,HADBサーバへの接続中は有効になります。HADBサーバへの接続中にクライアントロールの付与や取り消しなどが実行された場合でも,その変更は次回のHADBサーバへの接続時に反映されます。