Openflow Connector for Salesforce Bulk API: Snowflake einrichten

Unter diesem Thema werden die Schritte zur Einrichtung von Snowflake für Openflow Connector for Salesforce Bulk API beschrieben.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Aufgaben ausgeführt haben:

Erstellen Sie ein Schlüsselpaar.

Erstellen Sie ein Schlüsselpaar, das vom Benutzenden des Dienstkontos im Konnektor zur Interaktion mit der Datenbank verwendet wird.

Bemerkung

Dieser Schritt ist nur erforderlich, wenn Sie den Konnektor in Openflow BYOCbereitstellen. Er wird NOT benötigt, wenn der Konnektor in Openflow SPCS bereitgestellt wird.

  1. Erzeugen Sie einen privaten Schlüssel. Das folgende Beispiel zeigt, wie Sie einen unverschlüsselten privaten Schlüssel generieren.

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

    Der Inhalt der rsa_key.p8-Datei sieht wie folgt aus:

    -----BEGIN PRIVATE KEY-----
    MIIE6T...
    -----END PRIVATE KEY-----
    
    Copy
  2. Erzeugen Sie den öffentlichen Schlüssel, indem Sie auf den privaten Schlüssel verweisen.

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

    Der Inhalt der rsa_key.pub-Datei sieht wie folgt aus:

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

    Kopieren Sie den Inhalt dieser Datei (ohne die Header -----BEGIN PUBLIC KEY----- und -----END PUBLIC KEY-----), die beim Erstellen des Benutzenden im nächsten Abschnitt verwendet werden soll.

Objekte erstellen und Berechtigungen erteilen

Erstellen Sie ein Dienstkonto, eine Rolle, eine Datenbank, ein Schema und ein Warehouse für den Konnektor, und erteilen Sie die entsprechenden Berechtigungen.

  1. Verwenden Sie eine Rolle mit ACCOUNTADMIN-Berechtigungen zum Festlegen der Rolle:

    USE ROLE ACCOUNTADMIN;
    
    Copy
  2. Erstellen Sie die Snowflake-Zieldatenbank, wenn sie nicht existiert:

    CREATE DATABASE IF NOT EXISTS <my_salesforce_db>;
    
    Copy
  3. Erstellen Sie das Zielschema in der Datenbank, wenn es nicht existiert:

    CREATE SCHEMA IF NOT EXISTS <my_salesforce_db>.<my_salesforce_schema>;
    
    Copy
  4. Erstellen Sie die Rolle, die vom Openflow-Konnektor verwendet wird:

    CREATE ROLE IF NOT EXISTS <Salesforce_connector_role_name>;
    
    Copy
  5. Erteilen Sie der Rolle die Berechtigungen zur Verwendung der Datenbank:

    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. Erstellen Sie ein Warehouse für den Konnektor (oder verwenden Sie ein vorhandenes), und erteilen Sie der Konnektorrolle Nutzungsberechtigungen:

    -- 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. Erstellen Sie den Dienstbenutzenden, und weisen Sie die Rolle und den öffentlichen Schlüssel zu:

    -- 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

Netzwerkregel erstellen (nur Openflow Snowflake-Bereitstellung)

Wenn Sie den Konnektor in einer Laufzeitumgebung bereitstellen, die sich in einer Openflow Snowflake-Bereitstellung befindet, müssen Sie eine Netzwerkregel und eine Integration für den externen Zugriff erstellen und diese in der Laufzeitumgebung festlegen.

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

Nächste Schritte

Konfigurieren Sie den Konnektor in Openflow:

Openflow Connector for Salesforce Bulk API: Konnektor konfigurieren