接続の前に
接続の前に
ServiceNow に接続する前に、ServiceNow 環境が正しく設定されていることを確認してください。 これにより、ドライバーがメタデータを取得し、データを正常にクエリできるようになります。認証ユーザーがServiceNow に接続するには、次のようなリストメタデータにアクセスするための少なくとも読み取り権限が必要です:
- sys_db_object(すべてのデータに必要)
- sys_dictionary(ServiceNow スキーマ情報の取得に必要)
- sys_glide_object(特定のServiceNow テーブルメタデータに必要)
リストメタデータへのアクセスには、次の2つのステップが必要です:
- 必要な各システムテーブルへのアクセスを有効にするために、必要なすべてのアクセス制御リスト(ACL)を作成します。
- 認証ユーザーに適切なロールを割り当てます。
ACL 作成の前提条件
システムテーブル用のServiceNow ACL を作成するには、admin が一時的に自身のセッションを昇格させる必要があります:- ユーザーメニューで、Elevate role をクリックします。
- security_admin を選択し、Update をクリックします。
ステップ1:各システムテーブルへのアクセスを有効にする
各システムテーブルへのアクセスを有効にするには、テーブルレベルとフィールドレベルの両方の権限が付与されていることを確認してください。 ServiceNow の最小権限のセキュリティ原則に従い、専用の読み取り専用ロール(例:x_connector_metadata_reader)を作成します。 その後、以下のステップで作成するACL にこのカスタムロールを割り当てます。READ sys_db_object
sys_db_object へのアクセスを有効にするには:
- System Security > Access Controls に移動します。
- 新しいACL オブジェクトを作成するには、New を選択します。
- Type には、record を選択します。
- Operation には、read を選択します。
- Name には、最初のドロップダウンでTable [sys_db_object] を選択し、2番目のドロップダウンで--None-- を選択します。(テーブルレベルの読み取り)
- Requires role セクションで、Insert a new row... テキストボックスをダブルクリックします。 カスタムロール(例:x_connector_metadata_reader)を検索して選択します。
- ACL オブジェクトを作成するには、Submit をクリックします。
- 次に、sys_db_object のすべてのフィールドに対するフィールドレベルの読み取り用に2つ目のACL を作成します:
- Type には、record を選択します。
- Operation には、read を選択します。
- Name には、最初のドロップダウンでTable [sys_db_object] を選択し、2番目のドロップダウンで* を選択します(つまり、sys_db_object.*)。
- Requires role セクションで、同じカスタムロールを追加します。
READ sys_dictionary
sys_dictionary へのアクセスを有効にするには:
- System Security > Access Controls に移動します。
- 新しいACL オブジェクトを作成するには、New を選択します。
- Type には、record を選択します。
- Operation には、read を選択します。
- Name には、最初のドロップダウンでTable [sys_dictionary] を選択し、2番目のドロップダウンで--None-- を選択します。(テーブルレベルの読み取り)
- Requires role セクションで、Insert a new row... テキストボックスをダブルクリックします。カスタムロール(例:x_connector_metadata_reader)を検索して選択します。
- ACL オブジェクトを作成するには、Submit をクリックします。
- sys_dictionary のすべてのフィールドに対するフィールドレベルの読み取り用に2つ目のACL を作成します:
- Type には、record を選択します。
- Operation には、read を選択します。
- Name には、最初のドロップダウンでTable [sys_dictionary] を選択し、2番目のドロップダウンで* を選択します(つまり、sys_dictionary.*)。
- Requires role セクションで、同じカスタムロールを追加します。
READ sys_glide_object
sys_glide_object へのアクセスを有効にするには:- System Security > Access Controls に移動します。
- 新しいACL オブジェクトを作成するには、New を選択します。
- Type には、record を選択します。
- Operation には、read を選択します。
- Name には、最初のドロップダウンでField class [sys_glide_object] を選択し、2番目のドロップダウンで--None-- を選択します。(テーブルレベルの読み取り)
- Requires role セクションで、Insert a new row... テキストボックスをダブルクリックします。
- カスタムロール(例:x_connector_metadata_reader)を検索して選択します。
- ACL オブジェクトを作成するには、Submit をクリックします。
- 次に、sys_glide_object のすべてのフィールドに対するフィールドレベルの読み取り用に2つ目のACL を作成します:
- Type には、record を選択します。
- Operation には、read を選択します。
- Name には、最初のドロップダウンでField class [sys_glide_object] を選択し、2番目のドロップダウンで* を選択します(つまり、sys_glide_object.*)。
- Requires role セクションで、同じカスタムロールを追加します。
注意:
- 設定でデータベースビューを有効にしている場合(例:IncludeDatabaseViews プロパティを使用)、sys_db_view、sys_db_view_table、およびsys_db_view_table_field に対しても同じペアの読み取りACL を作成する必要があります。
- 説明や表示カラム名を表示する場合(例:ShowDescriptions またはUseDisplayColumnNames プロパティを使用)、sys_documentation に対しても同じペアの読み取りACL を作成する必要があります。
- API とUI は同じセキュリティを適用します。ユーザーがレコードを読み取りまたは書き込みするには、各対象ビジネステーブルでテーブルレベルとフィールドレベルの両方のACL をパスする必要があります。いずれかのACL が失敗すると、アクセスは拒否されます。
- 継承テーブル:多くのアプリケーションテーブルは親を拡張します(例:incident はtask を拡張)。継承されたフィールドは親のACL によって管理されます。ユーザーのロールが子と親のACL を満たしていることを確認してください。
- ビジネステーブル(例:incident)には独自のロール/ACL が必要です。メタデータACL だけではビジネスデータへのアクセスは許可されません。
ステップ2:認証ユーザーにロールを割り当てる
上記のすべてのACL を作成した後、以下の手順を一度実行します:- User Administration > Users > 認証ユーザーを選択 > Roles > Edit... に移動します。
- ACL で必要としたカスタムロール(例:x_connector_metadata_reader)を認証ユーザーに追加します。