SQL 명령을 사용하여 커넥터 설치 및 구성하기

이 항목에서는 SQL 명령을 사용하여 커넥터를 설치하고 구성하는 방법을 설명합니다. ServiceNow 인스턴스 준비하기 에서 개술한 절차를 이미 수행했다고 가정하고 설명을 이어가겠습니다.

이 항목의 내용:

OAuth 설정하기

참고

OAuth 대신 기본 인증을 사용할 계획이라면 이 섹션을 건너뛰고 시크릿 오브젝트 만들기 섹션으로 계속 진행할 수 있습니다.

ServiceNow용 Snowflake Connector가 ServiceNow 인스턴스 인증에 OAuth를 사용하도록 구성할 수 있습니다.

  • ServiceNow에서 코드 권한 부여 흐름 과 함께 OAuth 사용을 지원하도록 인스턴스를 설정해야 합니다.

  • ServiceNow용 Snowflake Connector에서는 다음 사항이 적용됩니다.

    • 커넥터는 TYPE = API_AUTHENTICATION 와의 보안 통합을 사용하여 Snowflake를 ServiceNow 인스턴스에 연결합니다.

      보안 통합은 ServiceNow 인스턴스 인증을 위해 ServiceNow OAuth 클라이언트 ID, 클라이언트 시크릿, 엔드포인트 URL를 지정합니다.

    • 커넥터는 Snowflake 시크릿 오브젝트를 사용하여 인증 자격 증명을 비롯한 중요한 정보를 관리합니다.

      인증에 OAuth를 사용하는 경우, 커넥터는 ServiceNow OAuth 새로 고침 토큰, 새로 고침 토큰 만료 시간, 보안 통합의 이름을 Snowflake 시크릿 오브젝트에 저장합니다.

OAuth를 사용하도록 ServiceNow용 Snowflake Connector를 설정하려면 다음 단계를 따르십시오.

  1. 코드 권한 부여 흐름과 함께 OAuth를 사용하도록 ServiceNow 인스턴스를 구성합니다.

    • ServiceNow 인스턴스가 이미 OAuth 코드 권한 부여 흐름을 사용하고 있고 해당 인스턴스를 Snowflake ServiceNow Connector와 함께 사용하려는 경우 클라이언트 ID, 클라이언트 시크릿, OAuth 토큰에 해당하는 엔드포인트 URL을 기록해 두십시오.

      자세한 내용은 OAuth 토큰 관리 를 참조하십시오. 이 정보를 기록한 후 다음 단계에서 보안 통합을 생성합니다.

    • 다른 ServiceNow 인스턴스를 사용하려면 인스턴스에 액세스하거나 생성하고 OAuth 설정클라이언트가 인스턴스에 액세스할 수 있도록 엔드포인트 생성 에 표시된 대로 코드 권한 부여 흐름과 함께 OAuth를 사용하도록 인스턴스를 구성하십시오.

  2. ServiceNow에서 애플리케이션 레지스트리를 생성하고 이를 사용하여 커넥터를 구성합니다.

    1. ServiceNow 인스턴스에 로그인한 다음 Homepage 를 선택합니다.

    2. OAuth를 검색한 다음 Application Registry 를 선택합니다.

    3. New 를 선택한 다음 Create an OAuth API endpoint for external clients 을 선택합니다.

      그러면 다음 이미지와 같이 애플리케이션 레지스트리에 대한 구성 페이지가 표시됩니다.

      Displays the Application Registry page in ServiceNow.
    4. ServiceNow에서 Name 필드에 OAuth 애플리케이션 레지스트리의 이름을 입력합니다.

    5. ServiceNow의 Redirect URL field 에서 다음을 입력합니다.

      https://apps-api.c1.<cloud_region_id>.<cloud>.app.snowflake.com/oauth/complete-secret
      
      Copy

      여기서

      cloud_region_id

      Snowflake 계정의 클라우드 리전 식별자를 지정합니다.

      cloud

      클라우드 플랫폼의 식별자를 지정합니다(예: aws, azure 또는 gcp).

    6. 필요한 경우 ServiceNow에서 Refresh Token LifespanAccess Token Lifespan 필드의 값을 업데이트합니다.

      • 액세스 토큰의 수명을 600초 이상으로 설정하는 것이 좋습니다.

      • 새로 고침 토큰의 수명 값을 7776000(90일)으로 지정합니다.

    7. ServiceNow 에서 Submit 를 선택합니다.

      OAuth 애플리케이션 레지스트리가 애플리케이션 레지스트리 목록에 나타납니다.

    8. ServiceNow에서 방금 생성한 애플리케이션 레지스트리를 선택합니다.

      ServiceNow가 Client IDClient Secret 필드에 대한 값을 생성했습니다. 다음 섹션에서 보안 통합을 생성 할 때 이들 값을 사용합니다.

OAuth 새로 고침 토큰 생성하기

OAuth 새로 고침 토큰을 생성하는 방법은 다음과 같습니다.

  1. OAuth 설정하기 에서 개술한 작업을 수행했는지 확인합니다.

  2. ServiceNow 설명서의 REST OAuth 예제 에 설명된 대로 ServiceNow 인스턴스의 /oauth_token.do 엔드포인트에 HTTP 요청을 보내십시오.

    예를 들어 curl을 사용하여 HTTP 요청을 보내는 경우 다음을 실행하십시오.

    curl -d "grant_type=password" --data-urlencode "client_id=<client_id>" --data-urlencode "client_secret=<client_secret>" --data-urlencode "username=<username>" --data-urlencode "password=<password>" -X POST https://<instance_name>.service-now.com/oauth_token.do
    
    Copy

    Where

    instance_name

    ServiceNow 인스턴스의 이름을 지정합니다.

    client_idclient_secret

    ServiceNow 엔드포인트를 설정할 때 얻은 값을 지정합니다.

    usernamepassword

    ServiceNow 인스턴스에 대한 자격 증명을 지정합니다.

    참고

    위의 예제에서는 curl에서 data-urlencode 명령줄 플래그를 사용하여 ServiceNow에 전송된 HTTP 요청의 클라이언트 시크릿, 사용자 이름, 비밀번호를 URL로 인코딩 합니다.

    다른 도구를 사용하여 HTTP 요청을 보내는 경우 요청에서 이러한 값을 URL로 인코딩해야 합니다.

    HTTP 응답 본문에는 JSON 오브젝트가 포함되어 있습니다. 이 오브젝트의 refresh_token 필드에서 새로 고침 토큰을 가져옵니다.

    {"access_token":"abcd1234","refresh_token":"cdef567","scope":"useraccount","token_type":"Bearer","expires_in":1799}
    
    Copy

보안 통합 만들기

보안 통합은 Snowflake와 서드 파티 OAuth 2.0 서비스 간의 인터페이스를 제공하는 Snowflake 오브젝트입니다.

CREATE SECURITY INTEGRATION 명령을 사용하여 다음 예와 같이 보안 통합을 생성합니다.

CREATE SECURITY INTEGRATION <name>
 TYPE = API_AUTHENTICATION
 AUTH_TYPE = OAUTH2
 OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
 OAUTH_CLIENT_ID = '<client_id>'
 OAUTH_CLIENT_SECRET = '<client_secret>'
 OAUTH_TOKEN_ENDPOINT = 'https://<my_instance>.service-now.com/oauth_token.do'
 ENABLED = TRUE;
Copy

여기서

name

보안 통합의 이름을 지정합니다.

client_id

이전 섹션에서 ServiceNow에서 얻은 Client ID 필드의 값을 지정합니다.

client_secret

이전 섹션에서 ServiceNow에서 얻은 Client Secret 필드의 값을 지정합니다.

my_instance

ServiceNow 인스턴스의 이름을 지정합니다. 이는 ServiceNow 인스턴스의 호스트 이름 중 첫 번째 부분입니다. 예를 들어 ServiceNow 인스턴스에 대한 URL이 다음과 같은 경우

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

인스턴스 이름은 myinstance 가 됩니다.

시크릿 오브젝트 만들기

ServiceNow용 Snowflake Connector가 인증에 사용하는 Snowflake 시크릿 오브젝트를 생성합니다.

ACCOUNTADMIN 역할(커넥터를 설치, 구성, 실행하는 데 사용하는 역할)과 별도로 전용 역할을 사용하여 시크릿 오브젝트를 관리하는 것이 좋습니다. 또한 시크릿 오브젝트를 전용 데이터베이스 및 스키마에 저장하는 것이 좋습니다. 시크릿을 관리할 역할을 선택할 수 있으며 시크릿을 저장할 데이터베이스와 스키마를 선택할 수 있습니다.

시크릿을 관리하는 사용자 지정 역할을 만들려면 CREATE ROLE 명령을 사용하십시오. 역할에 부여할 수 있는 권한에 대한 자세한 내용은 액세스 제어 권한 을 참조하십시오.

다음 섹션에서는 별도의 데이터베이스와 스키마에 저장되고 사용자 지정 역할이 관리하는 시크릿 오브젝트를 생성하는 방법을 설명합니다.

시크릿 오브젝트의 스키마 만들기

먼저 CREATE DATABASECREATE SCHEMA 명령을 실행하여 시크릿 오브젝트를 저장할 데이터베이스와 스키마를 만듭니다. 스키마 및 데이터베이스의 이름은 유효한 오브젝트 식별자 여야 합니다.

예를 들어 시크릿 오브젝트에 대해 secretsdb 데이터베이스와 apiauth 스키마를 만들려면 다음 명령을 실행하십시오.

USE ROLE accountadmin;
CREATE DATABASE secretsdb;
CREATE SCHEMA apiauth;
Copy

시크릿을 관리하기 위한 사용자 지정 역할 만들기

다음으로, 시크릿을 관리할 사용자 지정 역할을 만들고(기존 역할을 사용하지 않는다고 가정함) 시크릿을 만드는 데 필요한 권한을 역할에 부여합니다.

  1. USERADMIN 시스템 역할을 사용하여 CREATE ROLE 명령을 실행하여 시크릿을 관리할 사용자 지정 역할을 만듭니다. 예를 들어 시크릿을 관리하는 사용자 지정 역할 secretadmin 을 생성하려면 다음 명령을 실행하십시오.

    USE ROLE useradmin;
    CREATE ROLE secretadmin;
    
    Copy
  2. SECURITYADMIN 시스템 역할을 사용하여 GRANT <권한> TO ROLE 명령을 실행하여 사용자 지정 역할에 다음 권한을 부여합니다.

    예:

    USE ROLE securityadmin;
    GRANT USAGE ON DATABASE secretsdb TO ROLE secretadmin;
    GRANT USAGE ON SCHEMA secretsdb.apiauth TO role secretadmin;
    GRANT CREATE SECRET ON SCHEMA secretsdb.apiauth TO role secretadmin;
    GRANT USAGE ON INTEGRATION servicenow_oauth TO role secretadmin;
    
    Copy
  3. USERADMIN 시스템 역할을 사용하여 GRANT <권한> TO ROLE 명령을 실행하여 시크릿을 생성하는 사용자에게 사용자 지정 역할을 부여합니다. 예를 들어 사용자 servicenow_secret_owner 에게 역할을 부여하려면 다음 명령을 실행하십시오.

    USE ROLE useradmin;
    GRANT ROLE secretadmin TO user servicenow_secret_owner;
    
    Copy

시크릿 만들기

다음으로, Snowflake가 코드 권한 부여 흐름과 함께 OAuth를 사용하여 ServiceNow 인스턴스에 인증할 수 있도록 하는 시크릿을 만듭니다.

참고

OAuth 대신 기본 인증을 사용할 계획이라면 아래 참고 항목 을 참조하십시오.

시크릿 오브젝트를 생성하려면 다음 매개 변수와 함께 CREATE SECRET 명령을 실행하십시오.

  • TYPEOAUTH2 로 설정합니다.

  • OAUTH_REFRESH_TOKENOAuth 새로 고침 토큰 생성하기 에서 검색한 OAuth 새로 고침 토큰으로 설정합니다.

  • UTC 타임존에서 OAUTH_REFRESH_TOKEN_EXPIRY_TIME 을 새로 고침 토큰 만료 타임스탬프로 설정합니다. 토큰이 발행된 날짜에 ServiceNow의 토큰 수명을 추가하여 이를 계산할 수 있습니다. 기본적으로, 토큰은 100일 후에 만료됩니다.

  • API_AUTHENTICATION보안 통합 만들기 에서 생성한 보안 통합의 이름으로 설정합니다.

예를 들어 servicenow_oauth 라는 보안 통합을 사용하는 service_now_creds_oauth_code 라는 시크릿을 생성하려면 다음 명령을 실행하십시오.

USE ROLE secretadmin;
USE SCHEMA secretsdb.apiauth;
CREATE SECRET servicenow_creds_oauth_code
  TYPE = OAUTH2
  OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH'
  OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00'
  API_AUTHENTICATION = servicenow_oauth;
Copy

기존 시크릿의 속성을 수정하려면(예: OAuth 새로 고침 토큰 업데이트) ALTER SECRET 명령을 사용하십시오.

참고

(OAuth가 아니라) 기본 인증을 사용할 계획이라면 CREATE SECRET 명령을 실행하여 TYPEPASSWORD 로 설정된 시크릿을 생성하십시오. USERNAMEPASSWORD 를 ServiceNow 인스턴스에 인증하는 데 사용하려는 ServiceNow 사용자의 사용자 이름과 비밀번호로 설정합니다. 예:

USE ROLE secretadmin;
USE SCHEMA secretsdb.apiauth;
CREATE SECRET servicenow_creds_pw
  TYPE = PASSWORD
  USERNAME = 'jsmith1'
  PASSWORD = 'W3dr@fg*7B1c4j';
Copy

이 사용자에 대해 다단계 인증이 활성화된 경우 ServiceNow 설명서의 REST API 에 설명된 대로 비밀번호와 함께 MFA 토큰을 제공해야 합니다.

웨어하우스 만들기

커넥터 전용 웨어하우스를 생성하는 것이 좋습니다. 전용 웨어하우스를 사용하면 비용 관리 및 리소스 추적을 개선할 수 있습니다. 리소스 추적을 용이하게 하려면 선택적으로 전용 웨어하우스에 하나 이상의 태그를 추가 할 수 있습니다.

참고

전용 웨어하우스 없이 ServiceNow용 Snowflake Connector를 실행하려면 웨어하우스에 대한 값을 제공하라는 메시지가 표시될 때 빈 문자열을 전달하십시오.

커넥터 웨어하우스의 경우 대규모 멀티 클러스터 웨어하우스를 사용하는 것이 좋습니다.

servicenow_conn_warehouse 라는 대규모 웨어하우스를 생성하려면 다음 명령을 실행하십시오.

USE ROLE accountadmin;
CREATE WAREHOUSE servicenow_conn_warehouse WAREHOUSE_SIZE = LARGE;
Copy

ServiceNow 데이터에 대한 데이터베이스 및 스키마 만들기

다음으로, ServiceNow 데이터에 대한 데이터베이스와 스키마를 만듭니다. ServiceNow용 Snowflake Connector는 ServiceNow 데이터를 이 데이터베이스와 스키마로 수집합니다.

데이터베이스와 스키마를 만들 때 다음 사항에 유의하십시오.

데이터베이스와 스키마를 생성하려면 CREATE DATABASECREATE SCHEMA 명령을 실행하십시오.

예를 들어 ServiceNow 데이터에 대해 dest_db 데이터베이스와 dest_schema 스키마를 만들려면 다음 명령을 실행하십시오.

USE ROLE accountadmin;
CREATE DATABASE dest_db;
CREATE SCHEMA dest_schema;
Copy

참고

커넥터를 다시 설치하는 경우 커넥터의 이전 설치를 위해 만든 스키마를 다시 사용할 수 있습니다. 커넥터의 이전 설치에서 이미 데이터를 로드했고 동일한 테이블에 데이터를 계속 로드하려는 경우에 가능한 일입니다.

데이터 로드를 계속하려면 커넥터를 다시 설치하기 전에 스키마를 수정하지 마십시오. 커넥터의 이전 설치에서 생성된 테이블의 정의를 변경하지 마십시오.

나중에 ENABLE_TABLES 저장 프로시저를 호출하면 저장 프로시저가 이러한 필수 오브젝트가 이미 존재하는지 확인하여 필수 오브젝트를 불필요하게 다시 생성하려고 시도하지 않습니다.

데이터 수집을 재개할 위치를 결정하기 위해 커넥터는 이벤트 로그 테이블을 검사합니다.

  • 커넥터는 이벤트 로그 테이블에서 UPDATE 또는 DELETE 유형의 행을 찾으면 (sys_updated_on 또는 sys_created_on 열에서) 최신 행의 타임스탬프를 수집 시작점으로 사용합니다.

  • 이벤트 테이블에 UPDATE 또는 DELETE 유형의 행이 없는 경우 커넥터는 이벤트 로그 테이블에서 event_date 열의 가장 오래된 값을 사용합니다.

ServiceNow 인스턴스와 통신하기 위한 API 통합 만들기

다음으로, ServiceNow 인스턴스와 통신하기 위한 API 통합을 생성합니다. 다음 구문을 사용하여 CREATE API INTEGRATION 명령을 실행합니다.

CREATE API INTEGRATION <integration_name>
  API_ALLOWED_PREFIXES = ('https://<servicenow_instance_name>.service-now.com')
  ALLOWED_AUTHENTICATION_SECRETS = (<secret_name>)
  ENABLED = TRUE
Copy

여기서

integration_name

API 통합의 이름을 지정합니다. 이름은 유효한 오브젝트 식별자 여야 합니다. 계정에서 이름은 API 통합 간에 고유해야 합니다.

API_ALLOWED_PREFIXES = ('https://servicenow_instance_name.service-now.com')

ServiceNow 인스턴스에 대한 URL을 지정합니다. 이를 통해 이 API 통합의 사용을 지정된 URL이 있는 인스턴스로 제한합니다.

ALLOWED_AUTHENTICATION_SECRETS = (secret_name)

API 통합 범위에서 사용하도록 허용되는 시크릿 이름의 목록을 지정합니다.

이를 시크릿 오브젝트 만들기 에서 생성한 시크릿 오브젝트의 이름으로 설정합니다.

ENABLED = TRUE

이 API 통합을 사용할지, 사용하지 않을지 지정합니다. API 통합을 사용하지 않을 경우 이 통합에 의존하는 어떤 외부 함수도 작동하지 않습니다.

TRUE

통합 정의에 지정된 매개 변수를 기반으로 통합을 실행할 수 있습니다.

FALSE

유지 관리를 위해 통합이 일시 중단됩니다. Snowflake와 서드 파티 서비스 간의 통합이 작동하지 않습니다.

예를 들어 myinstance 라는 ServiceNow 인스턴스에 대해 servicenow_api_integration 이라는 API 통합을 생성하려면 다음 명령을 실행하십시오.

USE ROLE accountadmin;
CREATE API INTEGRATION servicenow_api_integration
  API_ALLOWED_PREFIXES = ('https://myinstance.service-now.com')
  ALLOWED_AUTHENTICATION_SECRETS = (secretsdb.apiauth.servicenow_creds_pw)
  ENABLED = TRUE
Copy

참고

CREATE API INTEGRATION 문에서 다른 매개 변수를 설정할 필요가 없습니다.

커넥터에 대한 로깅 구성하기

Snowflake용 ServiceNow Connector는 이벤트 테이블을 사용하여 커넥터에 대한 오류 로그를 저장합니다. 이벤트 테이블을 설정하려면 이벤트 테이블 설정하기 가이드를 따르십시오. 이벤트 테이블이 설정되지 않은 경우 로그 및 이벤트 정보가 삭제됩니다.

커넥터에 대한 사용자 지정 역할 만들기

다음으로, 커넥터에 대한 사용자 지정 역할을 만들고 해당 역할에 커넥터 실행에 필요한 권한을 부여합니다.

이 역할을 통해 커넥터는 다음을 수행할 수 있습니다.

  • 데이터 수집을 위한 작업 생성 및 관리.

  • 전용 웨어하우스 사용.

  • ServiceNow 인스턴스에 연결하기 위해 시크릿 및 API 통합에 액세스.

이 역할은 또한 커넥터가 수집한 ServiceNow 데이터를 포함하는 테이블과 뷰의 소유자입니다.

이 역할을 생성하고 권한을 부여하려면 다음을 수행하십시오.

  1. USERADMIN 시스템 역할을 사용하여 CREATE ROLE 명령을 실행하여 데이터를 소유할 사용자 지정 역할을 생성합니다. 예를 들어 데이터를 소유하기 위한 사용자 지정 역할 connector_resources_provider 를 생성하려면 다음 명령을 실행하십시오.

    USE ROLE useradmin;
    CREATE ROLE connector_resources_provider;
    
    Copy
  2. ACCOUNTADMIN 역할을 사용하여 GRANT <privileges> to ROLE 명령을 실행하여 사용자 지정 역할에 다음 권한을 부여합니다.

    예를 들어 connector_resources_provider 라는 역할에 다음 권한을 부여하려고 합니다.

    • 계정에 대한 EXECUTE TASK 권한

    • 계정에 대한 EXECUTE MANAGED TASK 권한

    • 웨어하우스 servicenow_conn_warehouse 에 대한 USAGE 권한

    • dest_db 데이터베이스에 대한 USAGE 권한

    • dest_db.dest_schema 스키마에 대한 USAGE, CREATE TABLE, CREATE VIEW 권한

    • servicenow_api_integration 통합에 대한 USAGE 권한

    • secretsdb 데이터베이스에 대한 USAGE 권한

    • secretsdb.apiauth 스키마에 대한 USAGE 권한

    • secretsdb.apiauth.servicenow_creds_oauth_code secret 시크릿에 대한 USAGE 권한

    그러면 다음 명령을 실행하십시오.

    USE ROLE accountadmin;
    
    GRANT EXECUTE TASK ON ACCOUNT TO ROLE connector_resources_provider;
    GRANT EXECUTE MANAGED TASK ON ACCOUNT TO ROLE connector_resources_provider;
    
    GRANT USAGE ON WAREHOUSE servicenow_conn_warehouse TO ROLE connector_resources_provider;
    
    GRANT USAGE ON DATABASE dest_db TO ROLE connector_resources_provider;
    GRANT USAGE ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider;
    GRANT CREATE TABLE ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider;
    GRANT CREATE VIEW ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider;
    
    GRANT USAGE ON INTEGRATION servicenow_api_integration TO ROLE connector_resources_provider;
    
    GRANT USAGE ON DATABASE secretsdb TO ROLE connector_resources_provider;
    GRANT USAGE ON SCHEMA secretsdb.apiauth TO ROLE connector_resources_provider;
    GRANT USAGE ON SECRET secretsdb.apiauth.servicenow_creds_oauth_code TO ROLE connector_resources_provider;
    
    Copy

ServiceNow용 Snowflake 커넥터를 설치한 후 커넥터에 이 역할을 부여합니다.

수집이 시작된 후 수집된 데이터에 액세스하기 위해 별도 보다 세분화된 역할을 만드는 것이 좋지만, 이 역할을 사용하여 수집된 데이터를 쿼리하고 추가 권한으로 확장할 수 있습니다. 반대로, 커넥터에 필요한 오브젝트에 대한 역할 권한을 취소하거나 수집된 데이터가 있는 테이블 및 뷰의 역할 소유권을 변경하는 것은 허용되지 않으며 그럴 경우 커넥터가 중단됩니다.

ServiceNow용 Snowflake Connector 설치하기

커넥터를 설치하려면 다음을 수행하십시오.

  1. Snowsight를 사용하여 커넥터 인스턴스용 데이터베이스를 만듭니다. 데이터베이스를 만드는 방법에 대한 자세한 내용은 Snowsight를 사용하여 커넥터 설치 및 구성하기 를 참조하십시오.

  2. SQL 워크시트로 이동합니다.

  3. ACCOUNTADMIN 역할이 있는 사용자로 로그인합니다. 예:

    USE ROLE ACCOUNTADMIN;
    
    Copy
  4. 커넥터의 사용자 지정 역할(앞서 생성한 역할)을 커넥터의 인스턴스 역할을 하는 데이터베이스 에 부여합니다.

    예를 들어 connector_resources_provider 라는 역할을 my_connector_servicenow 데이터베이스에 부여하려면 다음 명령을 실행하십시오.

    GRANT ROLE connector_resources_provider TO DATABASE my_connector_servicenow;
    
    Copy
  5. 설치된 데이터베이스에서 FIREWALL_CONFIGURATION 데이터베이스 속성을 설정합니다. ServiceNow 인스턴스에 대한 URL 접두사를 포함합니다.

    예를 들어 데이터베이스 이름이 my_connector_servicenow 이고 ServiceNow 인스턴스 이름이 my-instance 인 경우 다음 명령을 실행합니다.

    ALTER DATABASE my_connector_servicenow SET FIREWALL_CONFIGURATION = ('https://my-instance.service-now.com')
    
    Copy
  6. USE DATABASE 명령을 실행하여 커넥터용 데이터베이스를 사용합니다. 예:

    USE DATABASE my_connector_servicenow;
    
    Copy
  7. CALL 명령으로 CONFIGURE_CONNECTION 이라는 저장 프로시저를 호출하여 ServiceNow 인스턴스에 대한 연결을 구성합니다.

    CALL CONFIGURE_CONNECTION({
       'serviceNowUrl': '<servicenow_base_url>',
       'secret': '<secret_name>',
       'apiIntegrationName': '<api_integration_name>'
    })
    
    Copy

    여기서

    servicenow_base_url

    커넥터가 사용해야 하는 ServiceNow 인스턴스의 URL을 지정합니다. URL은 다음 형식이어야 합니다.

    https://<servicenow_instance_name>.service-now.com
    
    Copy
    secret_name

    ServiceNow에 인증하기 위한 자격 증명을 포함하는 시크릿 오브젝트(앞서 생성한 시크릿) 의 정규화된 이름을 지정합니다.

    시크릿 오브젝트의 정규화된 이름을 다음 형식으로 지정해야 합니다.

    <database_name>.<schema_name>.<secret_name>
    
    Copy

    데이터베이스, 스키마 및 시크릿의 이름은 유효한 오브젝트 식별자 여야 합니다.

    api_integration_name

    ServiceNow를 위한 API 통합(앞서 생성한 API 통합) 의 이름을 지정합니다.

    통합 이름은 유효한 오브젝트 식별자 여야 합니다.

    다음과 같은 ServiceNow 인스턴스에 대한 연결을 구성하는 방법을 예로 들겠습니다.

    • URL https://myinstance.service-now.com 이 있음.

    • secretsdb.apiauth.servicenow_creds_oauth_code 에 저장된 시크릿을 사용함.

    • servicenow_api_integration 이라는 API 통합을 사용함.

    다음 명령을 실행합니다.

     CALL CONFIGURE_CONNECTION({
        'serviceNowUrl': 'https://myinstance.service-now.com',
        'secret': 'SECRETSDB.APIAUTH.SERVICENOW_CREDS_OAUTH_CODE',
        'apiIntegrationName': 'SERVICENOW_API_INTEGRATION'
    });
    
    Copy

    연결이 성공적으로 구성된 경우 이 저장 프로시저는 다음 메시지를 출력합니다.

    Connection configured successfully
    
    Copy

    참고

    커넥터가 구성되면 전달된 시크릿 및 API 통합의 이름을 변경할 수 없습니다. 커넥터는 이러한 오브젝트를 이름으로 참조합니다. 결과적으로, 이러한 오브젝트의 이름을 삭제하거나 변경하려고 시도하면 커넥터의 연결이 끊어져 작동이 중지됩니다.

  8. ServiceNow용 Snowflake Connector 시작하기 에 설명된 대로 커넥터를 시작합니다.

새로 생성된 데이터베이스는 커넥터의 인스턴스로, 다음을 포함합니다.

ServiceNow용 Snowflake Connector 시작 및 중지하기

다음 섹션에서는 커넥터를 시작, 중지, 재개하는 방법을 설명합니다.

ServiceNow용 Snowflake Connector 시작하기

START_CONNECTOR 라는 프로시저를 호출하여 커넥터를 시작합니다. 이 저장 프로시저의 인자는 아래에 설명되어 있습니다.

CALL START_CONNECTOR(
  '<warehouse_name>',
  '<dest_db_schema>',
  '<name_of_journal_table>',
  '<connector_role>',
);
Copy

여기서

warehouse_name

커넥터의 웨어하우스 이름을 지정합니다.

웨어하우스 이름은 유효한 오브젝트 식별자 여야 합니다.

전용 웨어하우스를 사용하지 않고 실행할 커넥터를 구성하려면 웨어하우스 이름으로 빈 문자열을 전달하십시오.

dest_db_schema

Snowflake의 ServiceNow 데이터에 대한 스키마(앞서 생성한 스키마) 의 정규화된 이름을 지정합니다.

스키마의 정규화된 이름을 다음 형식으로 지정해야 합니다.

<database_name>.<schema_name>
Copy

데이터베이스 및 스키마의 이름은 유효한 오브젝트 식별자 여야 합니다.

name_of_journal_table

삭제된 레코드에 대한 정보가 있는 테이블의 이름을 지정합니다. 자세한 내용은 ServiceNow 인스턴스 준비하기 섹션을 참조하십시오.

삭제된 레코드에 대한 정보는 삭제된 레코드를 전파하도록 설정한 테이블에만 사용할 수 있습니다.

삭제된 레코드를 전파하지 못하게 하려면 이 인자에 빈 문자열을 지정하십시오.

connector_role

앞서 생성한 커넥터 역할 에 대한 사용자 지정 역할의 이름을 지정합니다.

역할 이름은 유효한 오브젝트 식별자 여야 합니다.

예를 들어 다음을 사용하는 my_connector_servicenow 라는 커넥터를 시작하려는 방법을 설명하겠습니다.

  • servicenow_conn_warehouse 라는 웨어하우스

  • Snowflake의 ServiceNow 데이터에 대한 dest_db.dest_schema 라는 스키마

  • 삭제된 레코드를 추적하기 위한 sys_audit_delete 라는 ServiceNow 테이블

  • connector_resources_provider 라는 사용자 지정 역할

그러면 다음 명령을 실행하십시오.

CALL START_CONNECTOR(
 'SERVICENOW_CONN_WAREHOUSE',
 'DEST_DB.DEST_SCHEMA',
 'sys_audit_delete',
 'CONNECTOR_RESOURCES_PROVIDER',
);
Copy

커넥터가 성공적으로 시작된 경우 이 저장 프로시저는 다음 메시지를 표시합니다.

Successfully started the Snowflake Connector for ServiceNow. The connector can be configured now.
Copy

참고

커넥터가 시작되면 전달된 웨어하우스, 대상 데이터베이스, 대상 스키마, 커넥터에 대한 사용자 지정 역할의 이름을 바꿀 수 없습니다. 커넥터는 이러한 오브젝트를 이름으로 참조합니다. 결과적으로, 이러한 오브젝트의 이름을 삭제하거나 변경하려고 시도하면 커넥터의 연결이 끊어져 작동이 중지됩니다.

웨어하우스 이름을 바꾸는 대신, CONFIGURE_WAREHOUSE 저장 프로시저를 사용하여 커넥터가 사용하는 웨어하우스를 변경하십시오.

ServiceNow용 Snowflake Connector 중지하기

커넥터가 시작한 모든 작업을 중지하려면 STOP_CONNECTOR 저장 프로시저를 호출하십시오.

CALL STOP_CONNECTOR();
Copy

참고

STOP_CONNECTOR 저장 프로시저는 START_CONNECTOR 저장 프로시저를 호출하여 커넥터를 재개할 때까지 사용할 수 없습니다.

커넥터를 중지하면 RESUME_CONNECTOR 저장 프로시저를 호출하여 커넥터가 재개될 때까지 커넥터와의 상호 작용(예: 테이블 활성화/비활성화 또는 커넥터 구성)이 비활성화됩니다.

커넥터를 중지하면 커넥터에 대한 비용 생성도 중지됩니다.

ServiceNow용 Snowflake Connector 재개하기

STOP_CONNECTOR 저장 프로시저로 중지된 모든 작업을 재개하려면 RESUME_CONNECTOR 저장 프로시저를 호출하십시오.

CALL RESUME_CONNECTOR();
Copy

참고

RESUME_CONNECTOR 저장 프로시저는 START_CONNECTOR 저장 프로시저를 호출하여 커넥터를 재개할 때까지 사용할 수 없습니다.

ServiceNow용 Snowflake Connector 구성과 모니터링을 위해 권한 위임하기

커넥터를 설치한 후에는 ACCOUNTADMIN 역할만 구성 절차를 실행하고 커넥터 모니터링에 사용되는 뷰에 액세스할 수 있습니다.

참고

커넥터에 대한 사용자 지정 역할 만들기 에서 생성한 사용자 지정 역할에는 구성 프로시저를 실행하거나 모니터링 뷰에 액세스할 수 있는 권한이 없습니다.

이러한 권한을 다른 역할에 위임하려면 GRANT IMPORTED PRIVILEGES ON DATABASE ... TO ROLE ... 명령을 실행하십시오. 이 명령에서는 다음 구문을 사용합니다.

GRANT IMPORTED PRIVILEGES ON DATABASE <connector_name> TO ROLE <connector_config_role>;
Copy

여기서

connector_name

커넥터의 인스턴스 역할을 하는 데이터베이스의 이름 을 지정합니다.

connector_config_role

커넥터를 구성하고 모니터링하는 권한을 부여해야 하는 역할의 이름을 지정합니다.

참고

이 경우 connector_name 데이터베이스를 삭제하거나 Snowflake의 ServiceNow 데이터를 포함하는 스키마 에 액세스할 수 있는 권한을 역할에 부여하는 것은 아닙니다.

예를 들어 connector_config_role 이라는 사용자 지정 역할을 생성하고 my_connector_servicenow 이라는 커넥터 인스턴스를 구성하고 모니터링할 수 있는 권한을 해당 역할에 부여하려면 다음 명령을 실행하십시오.

USE ROLE useradmin;
CREATE ROLE connector_config_role;

USE ROLE securityadmin;
GRANT IMPORTED PRIVILEGES ON DATABASE my_connector_servicenow TO ROLE connector_config_role;
Copy

커넥터에서 사용하는 웨어하우스 변경하기(선택 사항)

커넥터에서 사용하는 웨어하우스를 변경하거나 전용 웨어하우스를 추가하려면 다음을 호출하여 작업을 수행하십시오.

CALL CONFIGURE_WAREHOUSE('<warehouse_name>');
Copy

여기서

warehouse_name

커넥터가 사용해야 하는 웨어하우스의 이름을 지정합니다.

전용 웨어하우스를 사용하지 않고 실행할 커넥터를 구성하려면 웨어하우스 이름으로 빈 문자열을 전달하십시오.

참고

다른 웨어하우스를 사용하도록 커넥터를 구성하기 전에 커넥터가 사용하는 사용자 지정 역할 에 새 웨어하우스에 대한 USAGE 권한이 있는지 확인하십시오.