SYSTEM$VERIFY_CATALOG_INTEGRATION
SYSTEM$VERIFY_CATALOG_INTEGRATION
SYSTEM$VERIFY_CATALOG_INTEGRATION() 함수는 Apache Iceberg™ REST용 카탈로그 통합(catalog integration)의 구성을 검증해요.
Iceberg REST 카탈로그로 인증과 접근 제어를 올바르게 구성했는지 확인하기 위해, 이 함수는 카탈로그 통합을 사용해 카탈로그 서버와 상호작용을 시도해요.
본문
문법
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'.." |
| } |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+