HADOOP_IMPERSONATION_CONFIG_CHECK
报告 Vertica 在访问 HDFS 中的 Kerberized 数据时将使用的委派令牌。HadoopImpersonationConfig 配置参数指定一个或多个权限、名称服务和 HCatalog 架构及其关联的令牌。对于每个测试值,该函数会报告 Vertica 将使用什么 doAs 用户或委派令牌进行访问。使用此函数确认您已按预期定义了您的委派令牌。
您可以使用实参调用此函数来指定要测试的权限、名称服务或 HCatalog 架构,或者不使用实参来测试所有配置的值。
此函数不检查您是否可以使用这些委派令牌访问 HDFS。
有关模拟的详细信息,请参阅 代理用户和委托令牌。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
HADOOP_IMPERSONATION_CONFIG_CHECK( ['what_to_test' ] )
参数
what_to_test
- 字符串,指定要测试的权限、名称服务和/或 HCatalog 架构。例如,“nameservice=ns1”的值意味着该函数仅测试对名称服务“ns1”的访问,而忽略任何其他权限和架构。'nameservice=ns1, schema=hcat1' 的值表示该函数测试一个名称服务和一个 HCatalog 架构。
如果您不指定此实参,该函数将测试 HadoopImpersonationConfig 中定义的所有权限、名称服务和架构。
特权
此函数不需要权限。
示例
考虑 HadoopImpersonationConfig 的以下定义:
[{
"nameservice": "ns1",
"token": "RANDOM-TOKEN-STRING"
},
{
"nameservice": "*",
"doAs": "Paul"
},
{
"schema": "hcat1",
"doAs": "Fred"
}
]
以下查询仅测试“ns1”名称服务:
=> SELECT HADOOP_IMPERSONATION_CONFIG_CHECK('nameservice=ns1');
-- hadoop_impersonation_config_check --
Connections to nameservice [ns1] will use a delegation token with hash [b3dd9e71cd695d91]
出于安全原因,此函数返回令牌的哈希值。您可以使用预期值调用 HASH_EXTERNAL_TOKEN 并将该哈希值与此函数输出中的哈希值进行比较。
不带实参的查询会测试所有值:
=> SELECT HADOOP_IMPERSONATION_CONFIG_CHECK();
-- hadoop_impersonation_config_check --
Connections to nameservice [ns1] will use a delegation token with hash [b3dd9e71cd695d91]
JDBC connections for HCatalog schema [hcat1] will doAs [Fred]
[!] hadoop_impersonation_config_check : [PASS]