在使用Kerberos身份验证与Teradata建立JDBC连接时,我需要帮助。
我已经阅读过文档,但是还不完整, http://developer.teradata.com/doc/connectivity/jdbc/reference/current/jdbcug_chapter_2.html#CCHCBHJI
但可以共享一些源代码和步骤。
答案 0 :(得分:1)
大约6个月前,我们切换到了kerberos身份验证,这需要大量的阅读,试验和错误,因此准备花很多时间在此上面。我们仅将jdbc用于将Aqua Data Studio连接到Teradata,我们的生产作业均未使用jdbc。在这种情况下,这是我们进行全新安装时需要做的设置的概述(我确定您会有所不同):
<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.7或Java 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中,我们现在在启动连接时将用户名和密码留空。
祝你好运!
有用的链接: