Install and configure the connector with Snowsight

本主题介绍如何通过 Snowsight 安装和配置 Snowflake Connector for ServiceNow®。

Install the Snowflake Connector for ServiceNow®

以下过程描述了如何安装连接器:

  1. Sign in to Snowsight as a user with the ACCOUNTADMIN role.

  2. In the navigation menu, select Marketplace » Snowflake Marketplace.

  3. 搜索 Snowflake Connector for ServiceNow®,然后选择连接器的磁贴。

  4. 在 Snowflake Connector for ServiceNow® 页面中,选择 Get。

    这将显示一个对话框,您可以使用该对话框开始安装过程的初始部分。

    在对话框中配置以下内容:

    1. 在 Warehouse used for installation 字段中,选择要用于安装连接器的仓库。

      备注

      这与连接器用于同步来自 ServiceNow® 的数据的仓库不同。在后续步骤中,您将为此目的创建一个单独的仓库。

    2. (可选)您可以在 Options » Application name 下更改应用程序的名称。

    3. 选择 Get。

  5. 此时将显示一个通知对话框:Successfully Installed。要继续配置,请选择 Configure。

    之后对话框关闭,并且 Snowflake Connector for ServiceNow® 页面显示用于配置和管理连接器的 UI。

Configure the Snowflake Connector for ServiceNow®

  1. Sign in to Snowsight as a user with either the ACCOUNTADMIN role or any other role that meets the following requirements:

    • 您必须具有以下账户级别权限:

      • EXECUTE TASK WITH GRANT OPTION

      • EXECUTE MANAGED TASK WITH GRANT OPTION

    • 必须在账户上启用 EVENT_TABLE。

    • 要访问仓库,您必须至少具有以下权限之一:

      • CREATE WAREHOUSE

      • OWNERSHIP

      • USAGE WITH GRANT OPTION

    • 要访问数据库,您必须至少具有以下权限之一:

      • CREATE DATABASE

      • OWNERSHIP

      • USAGE WITH GRANT OPTION

    • 要访问架构,您必须至少具有以下权限之一:

      • CREATE DATABASE

      • OWNERSHIP

      • USAGE WITH GRANT OPTION

      • CREATE SCHEMA

      • USAGE、CREATE TABLE、CREATE VIEW WITH GRANT OPTION

    • 可选:要访问角色,您可以创建新的角色或选择将被分配 DATA_READER 应用程序角色的现有角色。如果您想创建一个新角色,那么需要账户的 CREATE ROLE 权限。但是,这不是完成配置所必需的。

  2. In the navigation menu, select Catalog » Apps.

  3. 搜索 Snowflake Connector for ServiceNow®,然后选择它。现在,您将转到安装向导页面,该页面将引导您完成配置过程。

以下是列出的应用程序的配置步骤:

配置

在此对话框中,请填写以下字段:

字段

描述

Warehouse

连接器的专用虚拟仓库的标识符。

为您的账户指定一个唯一的名称。仓库的名称必须是有效的 对象标识符。

配置过程会创建一个新 Large 仓库,或重用具有指定名称的仓库。

Destination Database

数据库的标识符,该数据库将包含 Snowflake 中 ServiceNow® 数据的架构和表。

为您的账户指定一个唯一的名称。数据库名称必须是有效的 对象标识符。

配置过程将创建或重用具有指定名称的数据库。

Destination Schema

将包含 Snowflake 中的 ServiceNow® 数据的架构的标识符。

Snowflake Connector for ServiceNow® 会将 ServiceNow® 数据引入此架构的表中。

指定一个在所选数据库中具有唯一性的名称。架构名称必须是有效的 对象标识符。

配置过程将创建或重用具有指定名称的架构。

Role

连接器的新自定义角色的标识符。

此角色将被授予在 Destination Database 和 Destination Schema 上的 DATA_READER 应用程序角色以及 USAGE 特权。

为您的账户指定一个唯一的名称。角色的名称必须是有效的 对象标识符。

配置过程会创建具有指定名称的新角色。

备注

默认情况下,这些字段设置为配置连接器时创建的对象的名称。Snowflake 建议对这些字段使用新对象。但是如果需要,您可以指定现有对象的名称(例如,在重新安装连接器时)。

注意

确保仓库能够执行查询至少 3 小时。它受参数值的影响,该参数值既可以在连接器使用的仓库上设置,也可以在账户上设置(账户的值优先)。要检查当前值,请运行:

SHOW PARAMETERS LIKE 'STATEMENT_TIMEOUT_IN_SECONDS' FOR ACCOUNT;
SHOW PARAMETERS LIKE 'STATEMENT_TIMEOUT_IN_SECONDS' FOR WAREHOUSE <connector_warehouse>;

如果两个值都至少为 :code:`10800`(即 3 小时),则无需更改。否则,请根据需要运行:

ALTER ACCOUNT SET STATEMENT_TIMEOUT_IN_SECONDS = 10800;
ALTER WAREHOUSE <connector_warehouse> SET STATEMENT_TIMEOUT_IN_SECONDS = 10800;

如未提供适当的超时,则会发生数据引入失败的情况。

选择 Configure。

身份验证(连接到 ServiceNow)

如果您不是以具有 ACCOUNTADMIN 角色的用户身份登录,请确保您满足以下要求:

  • 您必须拥有 CREATE INTEGRATION 权限。

  • 如果集成以前是由其他角色创建的,那么这些集成的所有权必须转移给您的角色。

  • 如果 CONNECTORS_SECRET 数据库不存在,则您需要 CREATE DATABASE 权限。

  • 如果 CONNECTORS_SECRET 数据库存在,但由其他角色创建,则您需要以下权限:

    • USAGE WITH GRANT OPTION

    • CREATE SCHEMA WITH GRANT OPTION

  • 如果 CONNECTORS_SECRET.APP_NAME 架构存在,但由其他角色创建,则您需要以下权限:

    • USAGE WITH GRANT OPTION

    • CREATE SECRET

    • CREATE NETWORK RULE

  • 如果 CONNECTORS_SECRET.APP_NAME.SECRET 存在,但由其他角色创建,则需要将其所有权转移到您的角色。

  • 如果 CONNECTORS_SECRET.APP_NAME.NETWORK_RULE 存在,但由其他角色创建,则需要将其所有权转移到您的角色。

以下步骤描述了如何建立到 ServiceNow 的连接。您可以选择基本身份验证(用户名和密码)或 OAuth。

  1. 选择其中一种可能的身份验证方法:Basic authentication、OAuth2 或 :ui:`OAuth Client Credentials`(推荐)。

  2. 在 ServiceNow Instance 字段中,输入 ServiceNow® 实例的名称。

    这是 ServiceNow® 实例主机名的第一部分。例如,如果指向 ServiceNow® 实例的 URL 为:

    https://myinstance.service-now.com
    

    实例的名称将是 myinstance。

备注

使用自定义域时,例如除 service-now.com 以外的任何域,您必须提供完整的 ServiceNow® 实例 URL。

基本身份验证流程

  1. 在 ServiceNow username 和 ServiceNow password 字段中,输入您 ServiceNow® 账户的凭据。

  2. 选择 Connect。

OAuth2 授权代码流

为客户端创建端点以访问实例 (https://docs.servicenow.com/bundle/washingtondc-platform-security/page/administer/security/task/t_CreateEndpointforExternalClients.html),并使用它来配置连接器:

  1. 登录到 ServiceNow® 实例,然后选择 Homepage。

  2. 搜索 System OAuth,然后选择 Application Registry。

  3. 选择 New,,然后选择 Create an OAuth API endpoint for external clients。

    系统会显示应用程序注册表的配置页,如下图所示:

    在左侧的 ServiceNow 中显示应用程序注册表页。
  4. 在 ServiceNow 中的字段 Name 中,输入 OAuth 应用程序注册表的名称。

  5. 在 Snowsight 中,复制 Redirect URL 字段的值。在 ServiceNow 中,将此值粘贴到 Redirect URL 字段。

    该值由连接器生成。

  6. 如果需要,请在 ServiceNow 中更新字段 Refresh Token Lifespan 和 Access Token Lifespan 的值。

    • Snowflake 建议将访问令牌的有效期设置为至少 600 秒。

    • 对于刷新令牌的有效期,请指定值为 7776000(90 天)。

      注意

      当通过专用链接 URL 打开 Snowsight 时、重定向 URL 与通过公共 URL 打开 Snowsight 时不同。如果您使用专用链接 Snowsight 提供的值配置了重定向 URL,则所有用于刷新令牌的后续更新也必须使用专用链接 Snowsight 完成。如果您通过公开可用的 URL 访问 Snowsight,则所有用于刷新令牌的后续更新也必须在此 URL 处使用 Snowsight 完成。

  7. 在 ServiceNow 中,选择 Submit。

    OAuth 应用程序注册表显示在应用程序注册表列表中。

  8. 在 ServiceNow 中,选择您刚刚创建的应用程序注册表。

    请注意,ServiceNow® 已为 Client ID 和 Client Secret 字段创建值。

  9. 在 ServiceNow 中,复制 Client ID 的值。在 Snowsight 中,将此值粘贴到 Client ID 字段。

  10. 在 ServiceNow 中,复制 Client Secret 的值。在 Snowsight 中,将此值粘贴到 Client Secret 字段。

    备注

    该连接器使用一个 :doc:`密钥 </user-guide/api-authentication>`(一种架构级对象)来存储用于对 ServiceNow® 实例进行身份验证的访问令牌。连接器将此密钥对象与安全集成和外部访问集成结合使用,以连接到 ServiceNow® 实例。

    密钥、安全集成和外部访问集成会在您安装连接器时自动创建。

  11. 在 Snowsight 中,选择 Connect。

    此时会出现一个对话框,要求您使用用户名和密码登录到 ServiceNow® 实例。提供您希望连接器进行身份验证的用户的凭据,它需要 Prepare your ServiceNow® instance 中列出的权限。

    重要

    如果您在不需要提供凭据的情况下被直接重定向到此对话框,则表示您已经登录到 ServiceNow® 实例。确保使用连接器应使用的用户登录,并且该用户具有必要的权限。

    注意:当前登录的用户显示在对话框的右上角。

  12. After logging in, to confirm that you want to allow the connector to connect to your ServiceNow® account, select Allow.

OAuth 客户端凭据流

为客户端创建端点以访问实例 (https://docs.servicenow.com/bundle/washingtondc-platform-security/page/administer/security/task/t_CreateEndpointforExternalClients.html),并使用它来配置连接器。

警告

要使用此身份验证方法,您的 ServiceNow® 实例必须至少升级到 Washington DC 版本 (https://www.servicenow.com/docs/bundle/washingtondc-release-notes/page/release-notes/family-release-notes.html)。

  1. 登录到 ServiceNow® 实例,然后选择 Homepage。

  2. 搜索 sys_properties.list。

  3. 在表中搜索具有 glide.oauth.inbound.client.credential.grant_type.enabled 名称的属性,并确保将其设置为 true。

    备注

    如果属性不存在,则创建。点击 New 按钮,并填写新属性的以下字段:

    • 将 Name 设置为 glide.oauth.inbound.client.credential.grant_type.enabled,

    • 将 Type 设置为 true | false,

    • 将 Value 设置为 true。

  4. 搜索 System OAuth,然后选择 Application Registry。

  5. 选择 New,然后选择 Create an OAuth API endpoint for external clients。

  6. 在 Name 字段中,输入 OAuth 应用程序注册表的名称。

  7. 在 OAuth Application User 字段中选择希望连接器向其进行身份验证的用户。用户需要具有 Prepare your ServiceNow® instance 中列出的权限。

    备注

    如果 OAuth Application User 字段在表单中不可用,请打开屏幕左上角的 Additional actions 菜单。选择 Configure > Form builder。然后,将缺少的 OAuth Application User 字段添加到表单的 Default 视图中。保存表单并刷新页面以继续。

  8. 选择 Submit。

    OAuth 应用程序注册表显示在应用程序注册表列表中。

  9. 选择您刚刚创建的应用程序注册表。

    请注意,ServiceNow® 已为 Client ID 和 Client Secret 字段创建值。

  10. 在 ServiceNow® 中,复制 Client ID 的值。在 Snowsight 中,将此值粘贴到 Client ID 字段。

  11. 在 ServiceNow® 中,复制 Client Secret 的值。在 Snowsight 中,将此值粘贴到 Client Secret 字段。

    备注

    该连接器使用一个 :doc:`密钥 </user-guide/api-authentication>`(一种架构级对象)来存储用于对 ServiceNow® 实例进行身份验证的访问令牌。连接器将此密钥对象与安全集成和外部访问集成结合使用,以连接到 ServiceNow® 实例。

    密钥、安全集成和外部访问集成会在您安装连接器时自动创建。

  12. 在 Snowsight 中,选择 Connect。

验证来源

本节将检查到您 ServiceNow® 实例的连接,并可选地允许设置 Journal Table。

要启用对已删除记录的传播,请将 Journal Table 设置为已删除记录的信息源。

Use the sys_audit_delete table as the source table.

如果您不希望将 ServiceNow® 中已删除的记录引入 Snowflake 中,请将此字段留空。

备注

确保连接器的 ServiceNow® 用户有权访问指定的日志表。如果并非表中的所有行都对用户可见,则连接器在访问验证期间可能无法从日志表中提取条目。在这种情况下,可通过从 SQL 调用 FINALIZE_CONNECTOR_CONFIGURATION 过程并为其提供 table_name 或 sys_id 实参以及 journal_table 来执行此步骤。

警告

在配置应用程序后,无法 设置日志表。要在配置后启用对已删除记录的传播,您需要重新安装连接器。

选择 Validate 以完成配置过程。

在源验证期间,连接器将尝试检查目标架构中是否存在先前导出的连接器状态。如果 __CONNECTOR_STATE_EXPORT 表存在且可供连接器访问,则该连接器将尝试导入状态。成功完成导入后,导出表将被删除。如果在导入过程中发生错误,则可在修复错误后再次运行源验证。如果不想导入状态或不想修复导入错误,请从连接器转移表的所有权并删除该表。

副作用

完成这些配置步骤后,向导将创建连接器工作所需的位于连接器的数据库外部的以下对象:

  • 用于存储密钥对象的具有 SNOWFLAKE_CONNECTOR_FOR_SERVICENOW 架构的数据库 CONNECTORS_SECRET;

  • CONNECTORS_SECRET.SNOWFLAKE_CONNECTOR_FOR_SERVICENOW 中名为 SECRET 的具有 ServiceNow® 凭据的密钥对象;

  • CONNECTORS_SECRET.SNOWFLAKE_CONNECTOR_FOR_SERVICENOW 中名为 NETWORK_RULE 的网络规则对象,用于允许从您的账户发出的出站流量;

  • 名为 SNOWFLAKE_CONNECTOR_FOR_SERVICENOW_SECURITY_INTEGRATION 的安全集成,用于在 Snowflake 和第三方 OAuth 2.0 服务之间集成;

  • 外部访问集成 SNOWFLAKE_CONNECTOR_FOR_SERVICENOW_EXTERNAL_ACCESS_INTEGRATION,用于与 ServiceNow 通信。

备注

如果选择默认的 SNOWFLAKE_CONNECTOR_FOR_SERVICENOW 名称作为应用程序名称,则像这样调用上述对象。如果在安装过程中更改了所选的应用程序名称,则这些对象的名称将相应地有所不同。

重要

不得 更改这些对象的名称、配置期间使用的仓库和角色。因为连接器通过名称来引用它们。更改其名称或删除它们会破坏引用,并使连接器不可用。

如有必要,请勿重命名仓库,而是使用 UPDATE_WAREHOUSE 存储过程来更改连接器使用的仓库。

Configure logging for the connector

Snowflake Connector for ServiceNow® 使用事件表来存储连接器的错误日志。要手动设置事件表,请按照 设置事件表 指南操作。

如未设置事件表,并且您选择使用 UI 向导安装连接器,连接器将自动设置事件表。

备注

此应用程序将收集日志以用于调试目的,并将它们写入您账户中的事件表和应用程序提供商账户中的事件表。只有此应用程序的日志将被包括在内,这些日志是“连接器使用情况数据”。

系统将在以下位置创建事件表。

对象

名称

Database

EVENTS_DB

Schema

PUBLIC

Table

EVENTS

连接器应用程序角色

作为原生应用程序,Snowflake Connector for ServiceNow® 会定义 应用程序角色。可在 Role-based access control for connectors (ServiceNow) 中查看它们。

后续步骤

安装并配置连接器后,执行“为 ServiceNow® 数据设置数据引入”中描述的步骤。