Teradata-使用kerberos的JDBC连接

时间:2019-01-08 05:27:25

标签: database jdbc teradata kerberos

在使用Kerberos身份验证与Teradata建立JDBC连接时,我需要帮助。

我已经阅读过文档,但是还不完整, http://developer.teradata.com/doc/connectivity/jdbc/reference/current/jdbcug_chapter_2.html#CCHCBHJI

但可以共享一些源代码和步骤。

1 个答案:

答案 0 :(得分:1)

大约6个月前,我们切换到了kerberos身份验证,这需要大量的阅读,试验和错误,因此准备花很多时间在此上面。我们仅将jdbc用于将Aqua Data Studio连接到Teradata,我们的生产作业均未使用jdbc。在这种情况下,这是我们进行全新安装时需要做的设置的概述(我确定您会有所不同):

  1. 添加Java属性(根据系统需要更新以下路径)
<string>-Dsun.security.jgss.debug=true</string>
<string>-Djava.security.krb5.realm=YOUR_REALM_HERE</string>
<string>-Djava.security.krb5.kdc=THIS_WAS_THE_SAME_AS_REALM_FOR_US</string>
<string>-Djava.security.krb5.conf=/etc/krb5.conf</string>
<string>-Djava.security.auth.login.config=/etc/jaas.conf</string>
<string>-Djavax.security.auth.useSubjectCredsOnly=false</string>

在上面引用的位置使用以下命令创建一个jaas.conf文件:

JaasClient {
com.sun.security.auth.module.Krb5LoginModule required debug=true useTicketCache=true;
};

要创建票证,您将运行

kinit -f

对于我们来说,我们的票每10个小时到期一次,ymmv。

您还需要安装Java的JCE Unlimited Strength。 下载适用于您的Java版本的“ Java密码学扩展(JCE)无限强度管辖权策略文件”。 您可以在此处找到Java 1.7Java 1.8的文件。

解压缩文件,并用下载的文件替换/path/to/your/.../java/jre/lib/security中的这两个文件:US_export_policy.jar和local_policy.jar。如果您看到错误消息“不支持的密钥类型找到了默认的TGT:18”,则表明您没有安装无限强度策略文件。

最后一步-我们必须将以下参数添加到jdbc驱动程序:TMODE = TERA,LOGMECH = KRB5。在Aqua Data Studio中,我们现在在启动连接时将用户名和密码留空。

祝你好运!

有用的链接:

Aqua Data Studio specific, but maybe helpful for others

Cloudera page about JCE Unlimited Strength for Java