Impersonator ロールを持つ非管理者ユーザーが Impersonation ダイアログ内でユーザーを表示できないIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Impersonator ロールが付与された非管理者ユーザーは Impersonate User 機能にアクセスできますが、Impersonation ダイアログ内のユーザー選択ドロップダウンリストでユーザーを表示できません。ユーザー検索は結果を返さないため、これらのユーザーは誰も Impersonate できません。 Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Impersonator ロールを持つ非管理者ユーザーは Impersonation ダイアログを開くことはできますが、ユーードロップダウンリストが空です。非管理者の Impersonator ロールユーザーでは、ユーザー検索が結果を返しません。管理者ユーザーは問題なく Impersonation ダイアログ内でユーザーを表示および選択できます。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } すべてのリリース Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この問題は、sys_user_has_role テーブル内の孤立レコードが原因です。具体的には、User フィールドに値が存在しないレコード(例: [user: null; role: admin])です。これらの孤立レコードは、ロールが割り当てられていたユーザーが削除され、その結果 User フィールドが null の sys_user_has_role レコードだけが残った場合に作成される可能性が高いです。 Impersonator ロールを持つ非管理者ユーザーが Impersonation ダイアログを開くと、ユーザー一覧をフィルタリングするために、システムが追加のクエリー条件 roles!=admin を適用します。この条件は次の形式の SQL サブクエリーを生成します。 SELECT *** FROM sys_user WHERE sys_id NOT IN (SELECT user FROM sys_user_has_role WHERE role='<sys_id_of_admin>') sys_user_has_role テーブルに User フィールドが null のレコードが存在するため、このクエリーは NOT IN (null) 条件を生成し、その結果クエリーは何も返さなくなります。管理者ユーザーは、この追加フィルターがセッションに適用されないため影響を受けません。 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この問題を解決するには、User フィールドが空の孤立した sys_user_has_role レコードをすべて特定して削除します。 問題を確認する 1. 管理者ユーザーとしてログインします。 2. /impersonate_dialog.do に移動します。 3. ユーザー検索を開くためにユーーザー検索フィールドを選択します。 4. ブラウザーのアドレスバーから URL をコピーします。URL は次のプレーンテキスト例のようになります。 https://.service-now.com/sys_user_list.do?sysparm_target=QUERY:active%3Dtrue%5Elocked_out%3Dfalse%5Eweb_service_access_only%3Dfalse%5EORweb_service_access_onlyISEMPTY&sysparm_target_value=&sysparm_reference_value=&sysparm_nameofstack=reflist&sysparm_clear_stack=true&sysparm_element=not&sysparm_reference=sys_user&sysparm_view=sys_ref_list&sysparm_additional_qual=&sysparm_domain_restore=false 5. Impersonator ロールを持つ非管理者ユーザーとしてログインします。 6. ステップ 2 ~ 4 を繰り返して、非管理者ユーザーの URL を取得します。URL は次のプレーンテキスト例のようになります。 https://.service-now.com/sys_user_list.do?sysparm_target=QUERY:active%3Dtrue%5Elocked_out%3Dfalse%5Eweb_service_access_only%3Dfalse%5EORweb_service_access_onlyISEMPTY%5Eroles!%3Dadmin&sysparm_target_value=&sysparm_reference_value=&sysparm_nameofstack=reflist&sysparm_clear_stack=true&sysparm_element=not&sysparm_reference=sys_user&sysparm_view=sys_ref_list&sysparm_additional_qual=&sysparm_domain_restore=false 7. 2 つの URL を比較します。非管理者ユーザーの URL には追加のクエリー条件 roles!=admin が含まれており、管理者ユーザーの URL には存在しません。 孤立レコードを確認する 8. 管理者ユーザーとしてログインします。 9. sys_user.list に移動します。 10. リスト条件ビルダーで条件 roles!=admin を追加します。 11. クエリーが結果を返さないことを確認します。これは孤立レコードが空の結果セットの原因となっていることを示します。 孤立レコードを削除する 12. 管理者ユーザーとしてログインします。 13. sys_user_has_role.list に移動します。 14. User フィールドが空のレコードのみを表示するようにリストをフィルタリングします。 15. このフィルターで返されたすべてのレコードを削除します。 16. Impersonator ロールを持つ非管理者ユーザーとしてログインし、Impersonation ダイアログ内のユーザー一覧が正しく表示されることを確認して修正を検証します。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } •孤立したユーザーロール — Now Support ポータル