连接到 Teradata:普通用户和域用户之间的区别

Connect to Teradata: difference between a regular and a domain user

我写过代码

import jaydebeapi

USERNAME="user01"
PASSWORD="password01"
URL_CONNECTION="jdbc:teradata://server01/"
jars=['E:\jdbc\tdgssconfig.jar','E:\jdbc\terajdbc4.jar']

conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver', URL_CONNECTION,[USERNAME,PASSWORD], jars)

如果我 post 用户名和密码 用户保护的内部密码 - 确定。 但是如果我 post LDAP 的用户名和密码返回错误

jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.10.00.07] [Error 8017] [SQLState 28000] The UserId, Password or Account is invalid.

内部用户和LDAP用户有区别吗?我必须改变吗?

您需要在 Teradata 中将登录机制指定为 LDAP,以便它通过 LDAP 对您进行身份验证。默认情况下,Teradata 采用 TD2 身份验证机制,这就是您的内部密码有效而不是 LDAP 的原因。

您需要修改 URL_CONNECTION 以包含 LOGMECH 参数以指定 LDAP。

import jaydebeapi

USERNAME="user01"
PASSWORD="password01"
URL_CONNECTION="jdbc:teradata://server01/LOGMECH=LDAP"
jars=['E:\jdbc\tdgssconfig.jar','E:\jdbc\terajdbc4.jar']

conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver', URL_CONNECTION,[USERNAME,PASSWORD], jars)