Teradata - JDBC 使用 kerberos 的连接

Teradata - JDBC connection using kerberos

我需要帮助使用 Kerberos 身份验证创建 JDBC 与 Teradata 的连接。

我已经查看了文档,但还不完整, http://developer.teradata.com/doc/connectivity/jdbc/reference/current/jdbcug_chapter_2.html#CCHCBHJI

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

我们大约在 6 个月前切换到 kerberos 身份验证,这需要大量阅读、试验和错误,所以请准备好在这上面花费大量时间。我们仅使用 jdbc 将 Aqua Data Studio 连接到 Teradata,none 的生产作业使用 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 Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files"。 您可以在此处找到 Java 1.7 or Java 1.8.

的文件

解压缩文件并用下载的文件替换 /path/to/your/.../java/jre/lib/security 中的这 2 个文件:US_export_policy.jar 和 local_policy.jar。如果您看到错误消息 "unsupported key type found the default TGT: 18",这可能表明您没有安装 Unlimited strength 策略文件。

最后一步——我们必须将这些参数添加到 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