Openflow Connector for Salesforce Bulk API:选择使用 时默认使用的角色和仓库。设置 Snowflake

备注

此连接器受 Snowflake 连接器条款 的约束。

本主题介绍了为 Openflow Connector for Salesforce Bulk API 设置 Snowflake 的步骤:

先决条件

在开始之前,请确保您已完成以下操作:

创建密钥对

创建密钥对,连接器中的服务账户用户将使用该密钥对与数据库进行交互。

备注

仅当您在 Openflow BYOC 中部署连接器时才需要执行此步骤。在 Openflow NOT 中部署连接器时 SPCS 需要此步骤。

  1. 生成私钥。下面的示例演示如何生成未加密的私钥。

    openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
    
    Copy

    rsa_key.p8 文件的内容将如下所示:

    -----BEGIN PRIVATE KEY-----
    MIIE6T...
    -----END PRIVATE KEY-----
    
    Copy
  2. 通过引用私钥生成公钥。

    openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
    
    Copy

    rsa_key.pub 文件的内容将如下所示:

    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqh...
    -----END PUBLIC KEY-----
    
    Copy

    复制此文件的内容(不带 -----BEGIN PUBLIC KEY----------END PUBLIC KEY----- 标头),以便在下一部分中创建用户时使用。

创建对象并授予权限

为连接器创建服务账户、角色、数据库、架构和仓库,并授予适当的权限。

  1. 使用具有 ACCOUNTADMIN 权限角色设置角色:

    USE ROLE ACCOUNTADMIN;
    
    Copy
  2. 创建目标 Snowflake 数据库(如果不存在):

    CREATE DATABASE IF NOT EXISTS <my_salesforce_db>;
    
    Copy
  3. 在数据库中创建目标架构(如果不存在):

    CREATE SCHEMA IF NOT EXISTS <my_salesforce_db>.<my_salesforce_schema>;
    
    Copy
  4. 创建 Openflow 连接器使用的角色:

    CREATE ROLE IF NOT EXISTS <Salesforce_connector_role_name>;
    
    Copy
  5. 向角色授予使用数据库的权限:

    GRANT USAGE ON DATABASE <my_salesforce_db> TO ROLE <Salesforce_connector_role_name>;
    GRANT USAGE ON SCHEMA <my_salesforce_db>.<my_salesforce_schema> TO ROLE <Salesforce_connector_role_name>;
    GRANT CREATE TABLE ON SCHEMA <my_salesforce_db>.<my_salesforce_schema> TO ROLE <Salesforce_connector_role_name>;
    
    Copy
  6. 为连接器创建仓库(或使用现有仓库),并向连接器角色授予使用权限:

    -- Create a warehouse (skip if you wish to use an existing warehouse)
    CREATE OR REPLACE WAREHOUSE MY_WAREHOUSE WITH
     WAREHOUSE_SIZE = 'SMALL'
     AUTO_SUSPEND = 300
     AUTO_RESUME = TRUE;
    
    GRANT USAGE, OPERATE ON WAREHOUSE MY_WAREHOUSE TO ROLE <Salesforce_connector_role_name>;
    
    Copy
  7. 创建服务用户并分配角色和公钥:

    -- Create a service user that the connector will use to interact with Snowflake
    -- Set default role to <Salesforce_connector_role_name>
    -- Assign the public key generated with openssl in the previous step (only for BYOC)
    CREATE OR REPLACE USER <Salesforce_connector_user_name>
      TYPE = SERVICE
      DEFAULT_ROLE = <Salesforce_connector_role_name>
      RSA_PUBLIC_KEY = '<public_key_generated_by openssl_in_step_1>';
    
    -- Grant the role to the user
    GRANT ROLE <Salesforce_connector_role_name> TO USER <Salesforce_connector_user_name>;
    
    Copy

创建网络规则(仅限 Openflow Snowflake 部署)

如果要在 Openflow Snowflake 部署中的运行时中部署连接器,必须创建网络规则和外部访问集成,并在运行时上进行设置。

USE ROLE SECURITYADMIN;

CREATE NETWORK RULE MY_OPENFLOW_SALESFORCE_NETWORK_RULE
   TYPE = HOST_PORT
   MODE = EGRESS
   VALUE_LIST = ('<salesforce_instance_host>:443');

CREATE EXTERNAL ACCESS INTEGRATION MY_OPENFLOW_SALESFORCE_EAI
   ALLOWED_NETWORK_RULES = (MY_OPENFLOW_SALESFORCE_NETWORK_RULE)
   ENABLED = TRUE
   COMMENT = 'External Access Integration to connect to Salesforce';

GRANT USAGE ON INTEGRATION MY_OPENFLOW_SALESFORCE_EAI TO ROLE <openflow_role_name>;
Copy

后续步骤

在 Openflow 中配置连接器:

Openflow Connector for Salesforce Bulk API:选择使用 时默认使用的角色和仓库。配置连接器