2.8.3 自動ロールマッピング機能
ユーザ認証方式がKeycloak認証の場合,KeycloakサーバのクライアントロールとHADBサーバのロールを自動的にマッピングする機能を使用することができます。この機能を自動ロールマッピング機能といいます。この機能を使用すると,HADBユーザがKeycloak認証を使用してHADBサーバに接続するときに,マッピングしているロールのロール利用権限がHADBユーザに自動的に付与されます。それに伴い,ロールに付与されているアクセス権限がHADBユーザに自動的に付与されます。自動ロールマッピング機能の概要を次の図に示します。
|
|
[説明]
-
HADBユーザADBUSER01が,Keycloak認証を使用してHADBサーバに接続すると,クライアントロールのROLE01とHADBサーバのロールのROLE01がマッピングされます。ADBUSER01には,ROLE01のロール利用権限が自動的に付与されます。それに伴い,ROLE01に付与されている表T1および表T2に対するSELECT権限が付与されます。
-
HADBユーザADBUSER02が,Keycloak認証を使用してHADBサーバに接続すると,クライアントロールのROLE01とHADBサーバのロールのROLE01がマッピングされます。また,クライアントロールのROLE02とHADBサーバのロールのROLE02がマッピングされます。ADBUSER02には,ROLE01およびROLE02のロール利用権限が自動的に付与されます。それに伴い,ROLE01およびROLE02に付与されている表T1,表T2,表T3,および表T4に対するSELECT権限が付与されます。
-
HADBユーザADBUSER03が,Keycloak認証を使用してHADBサーバに接続すると,クライアントロールのROLE02とHADBサーバのロールのROLE02がマッピングされます。ADBUSER03には,ROLE02のロール利用権限が自動的に付与されます。それに伴い,ROLE02に付与されている表T3および表T4に対するSELECT権限が付与されます。
- 重要
-
自動ロールマッピング機能を使用する場合は,次のことを実行する必要があります。
-
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ユーザ(ADBUSER01,ADBUSER02)にロール利用権限を付与する」の操作が不要になります。
- 留意事項
-
-
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サーバへの接続時に反映されます。
-