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]