SYSTEM$VERIFY_CATALOG_INTEGRATION

SYSTEM$VERIFY_CATALOG_INTEGRATION

SYSTEM$VERIFY_CATALOG_INTEGRATION() 함수는 Apache Iceberg™ REST용 카탈로그 통합(catalog integration)의 구성을 검증해요.

Iceberg REST 카탈로그로 인증과 접근 제어를 올바르게 구성했는지 확인하기 위해, 이 함수는 카탈로그 통합을 사용해 카탈로그 서버와 상호작용을 시도해요.

출처: Snowflake SQL Reference

본문

문법

SYSTEM$VERIFY_CATALOG_INTEGRATION( '<rest_catalog_integration_name>' )

반환

이 함수는 아래에 설명된 속성을 가진 JSON 객체를 반환해요.

Property Description
success 검증이 성공했는지 여부를 지정해요. 성공하면 true, 그렇지 않으면 false.
errorCode 실패의 오류 코드(검증이 실패하는 경우).
errorMessage 상세한 오류 메시지(검증이 실패하는 경우).
{
  "success" : false,
  "errorCode" : "004140",
  "errorMessage" : "SQL Execution Error: Failed to access the REST endpoint of catalog integration CAT_INT_VERIFICATION with error: Unable to process: Unable to find warehouse my_warehouse. Check the accessibility of the REST catalog URI or warehouse."
}

접근 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한이 있어야 해요.

Privilege Object Notes
USAGE Catalog integration

지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 사용자 지정 역할 만들기를 참고하세요.

보안 가능한 객체에 대해 SQL 작업을 수행하는 역할과 권한 부여에 대한 일반적인 정보는 접근 제어 개요를 참고하세요.

예제

다음 예제 문은 잘못된 OAuth 클라이언트 비밀번호를 사용해 REST 카탈로그 통합을 만든다(오류 없이 실행됨).

CREATE CATALOG INTEGRATION my_rest_cat_int
  CATALOG_SOURCE = ICEBERG_REST
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE = 'default'
  REST_CONFIG = (
    CATALOG_URI = 'https://abc123.us-west-2.aws.myapi.com/polaris/api/catalog'
    CATALOG_NAME = 'my_catalog_name'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = '123AbC ...'
    OAUTH_CLIENT_SECRET = '1365910abIncorrectSecret ...'
    OAUTH_ALLOWED_SCOPES = ('all-apis', 'sql')
  )
  ENABLED = TRUE;

시스템 함수를 사용해 카탈로그 통합을 검증하며 실패를 기대해요.

SELECT SYSTEM$VERIFY_CATALOG_INTEGRATION('my_rest_cat_int');

출력:

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                              SYSTEM$VERIFY_CATALOG_INTEGRATION('MY_REST_CAT_INT')                                                                                                               |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| {                                                                                                                                                                                                                                                                               |
|  "success" : false,                                                                                                                                                                                                                                                             |
|   "errorCode" : "004155",                                                                                                                                                                                                                                                       |
|   "errorMessage" : "SQL Execution Error: Failed to perform OAuth client credential flow for the REST Catalog integration MY_REST_CAT_INT due to error: SQL execution error: OAuth2 Access token request failed with error 'unauthorized_client:The client is not authorized'.." |
| }                                                                                                                                                                                                                                                                               |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

더 알아보기