使用 Snowsight 安装和配置连接器

Snowflake Connector for ServiceNow® 受 Snowflake Connector 条款 的约束。

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

本主题内容:

安装 Snowflake Connector for ServiceNow®

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

  1. 以具有 ACCOUNTADMIN 角色的用户身份登录 Snowsight。

  2. 在导航菜单中,选择 Data Products » 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。

配置 Snowflake Connector for ServiceNow®

  1. 以具有 ACCOUNTADMIN 角色或任何其他符合以下要求的角色的用户身份登录 Snowsight:

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

      • 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. 在导航菜单中,选择 Data Products » Apps

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

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

配置

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

字段

描述

Warehouse

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

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

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

Destination Database

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

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

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

Destination Schema

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

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

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

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

Role

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

此角色将被授予在 Destination DatabaseDestination 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>;
Copy

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

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

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

选择 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 authenticationOAuth2 或 :ui:`OAuth Client Credentials`(推荐)。

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

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

    https://myinstance.service-now.com
    
    Copy

    实例的名称将是 myinstance

备注

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

基本身份验证流程

  1. ServiceNow usernameServiceNow 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 LifespanAccess 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 IDClient Secret 字段创建值。

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

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

    备注

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

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

  11. 在 Snowsight 中,选择 Connect

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

  12. 登录后,确认要允许连接器连接到 ServiceNow® 账户。选择 Allow

    备注

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

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

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 字段中选择希望连接器向其进行身份验证的用户。用户需要具有 准备 ServiceNow® 实例 中列出的权限。

    备注

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

  8. 选择 Submit

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

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

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

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

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

    备注

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

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

  12. 在 Snowsight 中,选择 Connect

验证来源

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

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

您可以使用 sys_audit_delete 表或一个自定义表作为源表。

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

备注

确保连接器的 ServiceNow® 用户有权访问指定的日志表。如果并非表中的所有行都对用户可见,则连接器在访问验证期间可能无法从日志表中提取条目。在这种情况下,可通过从 SQL 调用 FINALIZE_CONNECTOR_CONFIGURATION 过程并为其提供 table_namesys_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 存储过程来更改连接器使用的仓库。

为连接器配置日志记录

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

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

备注

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

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

对象

名称

Database

EVENTS_DB

Schema

PUBLIC

Table

EVENTS

连接器应用程序角色

作为原生应用程序,Snowflake Connector for ServiceNow® 会定义 应用程序角色。可在 连接器基于角色的访问控制 中查看它们。

后续步骤

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

语言: 中文