我想通过 knox 作为特定用户 (userX) 连接到 HiveServer2,并且不需要任何身份验证。为此,我将“身份断言”与“匿名身份验证提供程序”一起使用。
在我的 sandbox.xml(存在于拓扑中)中,我使用了以下代码:
<provider>
<role>authentication</role>
<name>Anonymous</name>
<enabled>true</enabled>
</provider>
<provider>
<role>identity-assertion</role>
<name>Default</name>
<enabled>true</enabled>
<param>
<name>principal.mapping</name>
<value>anonymous=userX;</value>
</param>
</provider>
这工作正常,但我希望 userX 是一个变量,我想通过 jdbc url 命令接收这个变量。
我正在使用的命令:
beeline -u "jdbc:hive2://GATEWAY-HOST:GATEWAY-PORT/;ssl=true;sslTrustStore={gateway.jks location};trustStorePassword={master-key};transportMode=http;httpPath=gateway/sandbox/hive"
假设我想将连接建立为“UserABC”,我该如何实现?如何在 jdbc url 中传递此 UserABC,以及在 sandbox.xml 中需要进行哪些更改来选择该变量 userId。