- 类别:
系统函数 (系统信息)
SYSTEM$VERIFY_CATALOG_INTEGRATION¶
验证 Apache Iceberg™ REST 的指定目录集成的配置。
为了检查是否为 Iceberg REST 目录正确配置了授权和访问控制,该函数尝试使用目录集成与目录服务器进行交互。
语法¶
SYSTEM$VERIFY_CATALOG_INTEGRATION( '<rest_catalog_integration_name>' )
实参¶
rest_catalog_integration_name
要测试的 Iceberg REST 目录集成 的名称。
目录集成名称区分大小写。
返回¶
该函数返回一个 JSON 对象,其属性如下所述:
属性 |
描述 |
---|---|
|
指定验证是否成功;如果成功则为 |
|
失败的错误代码(如果验证失败)。 |
|
详细的错误消息(如果验证失败)。 |
{
"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."
}
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
USAGE |
目录集成 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
示例¶
以下示例语句使用无效的 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'
WAREHOUSE = 'my_warehouse'
)
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'.." |
| } |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+