使用 Snowsight 安装和配置连接器¶
Snowflake Connector for ServiceNow® 受 Snowflake Connector 条款 的约束。
本主题介绍如何通过 Snowsight 安装和配置 Snowflake Connector for ServiceNow®。
本主题内容:
安装 Snowflake Connector for ServiceNow®¶
以下过程描述了如何安装连接器:
以具有 ACCOUNTADMIN 角色的用户身份登录 Snowsight。
在导航菜单中,选择 Data Products » Marketplace。
搜索 Snowflake Connector for ServiceNow®,然后选择连接器的磁贴。
在 Snowflake Connector for ServiceNow® 页面中,选择 Get。
这将显示一个对话框,您可以使用该对话框开始安装过程的初始部分。
在对话框中配置以下内容:
在 Warehouse used for installation 字段中,选择要用于安装连接器的仓库。
备注
这与连接器用于同步来自 ServiceNow® 的数据的仓库不同。在后续步骤中,您将为此目的创建一个单独的仓库。
(可选)您可以在 Options » Application name 下更改应用程序的名称。
选择 Get。
此时将显示一个通知对话框:
Successfully Installed
。要继续配置,请选择 Configure。之后对话框关闭,并且 Snowflake Connector for ServiceNow® 页面显示用于配置和管理连接器的 UI。
配置 Snowflake Connector for ServiceNow®¶
以具有 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 权限。但是,这不是完成配置所必需的。
在导航菜单中,选择 Data Products » Apps。
搜索 Snowflake Connector for ServiceNow®,然后选择它。现在,您将转到安装向导页面,该页面将引导您完成配置过程。
以下是列出的应用程序的配置步骤:
配置¶
在此对话框中,请填写以下字段:
字段 |
描述 |
---|---|
Warehouse |
连接器的专用虚拟仓库的标识符。 为您的账户指定一个唯一的名称。仓库的名称必须是有效的 对象标识符。 配置过程会创建一个新 |
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。
选择其中一种可能的身份验证方法:Basic authentication、OAuth2 或 :ui:`OAuth Client Credentials`(推荐)。
在 ServiceNow Instance 字段中,输入 ServiceNow® 实例的名称。
这是 ServiceNow® 实例主机名的第一部分。例如,如果指向 ServiceNow® 实例的 URL 为:
https://myinstance.service-now.com
实例的名称将是
myinstance
。
备注
使用自定义域时,例如除 service-now.com
以外的任何域,您必须提供完整的 ServiceNow® 实例 URL。
基本身份验证流程¶
在 ServiceNow username 和 ServiceNow password 字段中,输入您 ServiceNow® 账户的凭据。
选择 Connect。
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)。
登录到 ServiceNow® 实例,然后选择 Homepage。
搜索 sys_properties.list。
在表中搜索具有
glide.oauth.inbound.client.credential.grant_type.enabled
名称的属性,并确保将其设置为true
。备注
如果属性不存在,则创建。点击 New 按钮,并填写新属性的以下字段:
将 Name 设置为
glide.oauth.inbound.client.credential.grant_type.enabled
,将 Type 设置为
true | false
,将 Value 设置为
true
。
搜索 System OAuth,然后选择 Application Registry。
选择 New,然后选择 Create an OAuth API endpoint for external clients。
在 Name 字段中,输入 OAuth 应用程序注册表的名称。
在 OAuth Application User 字段中选择希望连接器向其进行身份验证的用户。用户需要具有 准备 ServiceNow® 实例 中列出的权限。
备注
如果 OAuth Application User 字段在表单中不可用,请打开屏幕左上角的 Additional actions 菜单。选择 Configure > Form builder。然后,将缺少的 OAuth Application User 字段添加到表单的
Default
视图中。保存表单并刷新页面以继续。选择 Submit。
OAuth 应用程序注册表显示在应用程序注册表列表中。
选择您刚刚创建的应用程序注册表。
请注意,ServiceNow® 已为 Client ID 和 Client Secret 字段创建值。
在 ServiceNow® 中,复制 Client ID 的值。在 Snowsight 中,将此值粘贴到 Client ID 字段。
在 ServiceNow® 中,复制 Client Secret 的值。在 Snowsight 中,将此值粘贴到 Client Secret 字段。
备注
该连接器使用一个 密钥 (一种架构级对象)来存储用于对 ServiceNow® 实例进行身份验证的访问令牌。连接器将此密钥对象与安全集成和外部访问集成结合使用,以连接到 ServiceNow® 实例。
密钥、安全集成和外部访问集成会在您安装连接器时自动创建。
在 Snowsight 中,选择 Connect。
验证来源¶
本节将检查到您 ServiceNow® 实例的连接,并可选地允许设置 Journal Table。
要启用对已删除记录的传播,请将 Journal Table 设置为已删除记录的信息源。
您可以使用 sys_audit_delete
表或一个自定义表作为源表。
如果您不希望将 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 存储过程来更改连接器使用的仓库。
为连接器配置日志记录¶
Snowflake Connector for ServiceNow® 使用事件表来存储连接器的错误日志。要手动设置事件表,请按照 设置事件表 指南操作。
如未设置事件表,并且您选择使用 UI 向导安装连接器,连接器将自动设置事件表。
备注
此应用程序将收集日志以用于调试目的,并将它们写入您账户中的事件表和应用程序提供商账户中的事件表。只有此应用程序的日志将被包括在内,这些日志是“连接器使用情况数据”。
系统将在以下位置创建事件表。
对象
名称
Database
EVENTS_DB
Schema
PUBLIC
Table
EVENTS
连接器应用程序角色¶
作为原生应用程序,Snowflake Connector for ServiceNow® 会定义 应用程序角色。可在 连接器基于角色的访问控制 中查看它们。
后续步骤¶
安装并配置连接器后,执行“为 ServiceNow® 数据设置数据引入”中描述的步骤。