レポートのデータ権限問題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: ; } } ユーザーが特定の独立したレポートや、ダッシュボードやホームページの一部であるレポートを表示している場合に、レポートに表示されている情報が期待よりも少ないと思われるか、データがまったく表示されない場合があります。 この状況が発生する原因は多数ありますが、この記事では、その中から最も一般的な原因をいくつか示し、その問題を解決または回避できると考えられる方法についても説明します。 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: ; } } すべてのリリース 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: ; } } この状況が発生する原因は多数ありますが、その中からいくつかを示し、それを修正できる可能性がある方法について詳しく説明します。 1. 一部のユーザーの一部のフィールドにデータが表示されない 問題の原因となっている可能性がある ACL を確認するには、影響を受けるユーザーを代理したアドミンユーザーとしてセキュリティルールのデバッグを実行します。 admin ロールを持つユーザーとしてインスタンスにログインします。[Debug Security Rules] をオンにします。これは [System Security] > [Debug Security Rules] にあります。影響を受けるユーザーの代理操作を行います。ユーザーが識別したレポートを実行します。レポートがロードされたら、ACL 検証の失敗がないかデバッグログを確認します(セキュリティデバッグツールについては、こちらを参照してください)。特定されたら、ユーザーに欠落しているロールまたはグループを追加し、ユーザーがデータを読み取るためのアクセス権を持っていることをテストします 注:ユーザーのアクセスを確認するもう 1 つの方法は、テーブルのリストビューにアクセスして、表示しようとしているフィールドを追加することです。テーブルリストビューは、デバッグを使用して確認できる別の場所です。 2. レポートが共有されていない レポートを表示できない、またはアクセスできない最も一般的で明白な原因は、(個々のユーザー、ロール、またはグループとして) レポートにアクセスしようとしているユーザーにレポートが共有されていないことです。デフォルトでは、新しく作成されたレポートは共有されないため、レポート作成者またはアドミンロールを持つユーザー以外はアクセスできません。通常、レポートは、ユーザー個人の単位で共有したり、1 つ以上のグループと共有したり、システム上の 1 つ以上のロールに割り当てたりすることができます。 このようなアクセス権限の問題は、通常、レポートがリストに表示されなかったり、レポートを開いたり選択したりするオプションに表示されなかったりする原因になります。そのレポートを含むダッシュボードまたはホームページに他のユーザーがアクセスできても、そのレポートにアクセスできない場合、ダッシュボードはレポートが通常表示される場所に「Report visible only to a specific user or group」というメッセージを表示します。 この問題を修正するには、レポートの所有者 (またはアドミニストレーター) が、そのレポートの表示とアクセスの権限を持つべき適切な個人とレポートを共有する必要があります。この設定は、レポートの所有者により、表示されるレポート内の共有アイコンから直接実行できます。 3. リストレポートに表示される行数が期待より少ない レポートに関して報告されることがあるもう 1 つの一般的な問題は、リストタイプのレポートで、レポートに表示される行が閲覧者が期待するよりも少ないことです。たとえば、あるユーザーが表示したリストレポートに100 行があっても、別のユーザーが同じレポートを表示すると、表示される行が少なくなったり、まったく表示されなくなったりする場合があります。 レポートから 1 つ以上の行が削除された場合は、通常、セキュリティ上の制約により一部のレコードがリストから除外されたことを示すメッセージも表示されます。 たとえば、アクティブプリンターのリストレポートが、あるユーザーには次のように表示されるとします。 ただし、同じレポートを別のユーザーが表示しようとすると、大きく異なる結果が表示される場合があります。 この問題の一般的な原因は、リストタイプのレポートでは、レポートによって返される各行が、まずそのレポートのソーステーブルで定義されているすべての読み取り ACL レコードと比較されるためです。 したがって、このリストレポートの例では、そのレポートに表示される可能性のあるリストの行ごとに次の ACL が考慮されます。 この問題を修正するには、この情報を表示する必要があるユーザーのために、対象のテーブルおよびフィールドへの必要な読み取り権限を付与する新しい ACL を作成 (または既存の ACL レコードを更新) する必要があります。ACL レコードを変更するか、新しい ACL レコードを作成するには、一時的に security_admin に昇格されたアドミンアカウントが必要です。また、通常どおり、特にシステム内の ACL やその他のセキュリティ関連オブジェクトを編集する場合は細心の注意を払う必要があります。 4. 不完全なデータを示すグラフレポート レポートの閲覧で発生することが非常に多いもう 1 つの問題は、グラフタイプのレポート (リストタイプ以外のレポートとして定義) が、別のユーザーの同じレポートと比較して、不完全なデータセットを表示する可能性があることです。 この問題は、レポートが生成されて閲覧者に表示される前に、ソーステーブルのデータに対して Before Query Business Rule が実行されていることが原因で発生します。 したがって、該当するビジネスルールがそのレポートのソーステーブルで見つかり、権限または同様の条件に基づいてデータが制限されている場合、その条件を満たさないレコードはレポートに含める対象として扱われません。 その結果、(特にグループまたはロールのアクセス権限のため) アクセス権限レベルが異なるユーザーには、同じレポートでも大きく異なる結果が表示されることがあります。 たとえば、インスタンスに "All Incidents by Category" というタイトルのレポートがあり、作成者の場合、このレポートは次のように表示されるとします。 しかし、同じレポートでも、別のユーザーから次のように非常に小さなデータのサブセットが表示されたと報告を受ける場合があります。 このような違いが発生する理由を調査すると、このレポートのソーステーブルである「インシデント」には、クエリ前ビジネスルールが関連付けられていることが分かります。このビジネスルールは、エンドユーザーに最終レポートを表示したり、ダッシュボードやホームページにレポートを表示したりする前に、レポートデータに対して実行されます。 したがって、この例では、特定のユーザーがアクセスできるレコードを制限する、すぐに利用可能なクエリ前ビジネスルールが、そのままインシデントテーブルで実行されていることが分かりました。 この特定のケースでは、この特定のユーザーは ITIL ロールのメンバーではなく、そのインシデントの最初の作成者または呼び出し元でもなく、そのインシデントのウォッチリストのメンバーでもないため、当該のレコードを確認できません。ただし、このユーザーはそのようなレコードのうち 1 件の送信者であるため、レポートにはそのユーザーに対応するレコードが 1 つ含まれていることが分かります。 このレポートで取り扱われている実際のデータを確認すると、現在ログインしているこのユーザーには対象である特定の要件を満たしているレコードが 1 つだけあるため、そのユーザーに表示されるバージョンのレポートにそれが含まれていることが分かります。 このような問題を修正するための方法はいくつかあります。ユーザーをビジネスルールで許可されているロール([Roles] リストに指定されているロール)に追加するか、必要に応じてビジネスルールを変更して、該当するデータに必要なセキュリティ態勢を維持しながら、ユーザーに必要な権限を付与することができます。 前述の問題と同様、特定のレコードの種類に対する読み取り ACL もテーブル内の特定のレコードへのアクセスを制限する場合があるため、そのレポートで期待されるよりも少ないデータに基づいてレポートが表示される原因になる可能性があります。 また、この特定の問題はグラフレポートの観点から説明されていますが、On-Query Business Rules はリストレポートで返される行にも適用されることに注意してください。ただし、これらの行は ACL によって制限されることが多く、たいていの場合 ACL はビジネスルールよりも大幅に制限が厳しいため、この問題は通常、リストタイプのレポートではあまり発生しません。 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: ; } } レポートがデータを返さなかったり、返されるデータが期待より少なかったりする原因は多数考えられます。この記事では、特定のレポートに表示されるデータが少なかったり、データが 1 つもなかったりするという問題に関する一般的な発生源をいくつか説明しています。そのため、返されたレポートが不完全であると思われる問題のトラブルシューティングと解決には、まずこれらの発生源に対応することが効果的です。