我想以特定用户(userX)的身份通过knox连接到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。
答案 0 :(得分:0)
您可以为此使用HeaderPreAuth联合身份验证提供程序,我还要回应文档中表达的警告,即您需要配置适当的网络安全性,否则此提供程序将使网关容易遭受身份欺骗。