我确实写了代码
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)
如果我发布了用户名和密码用户保护的内部密码 - 好的。但是,如果我发布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用户之间存在差异吗?我必须更改?
您需要修改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)
您需要将登录机制指定为Teradata中的LDAP,以通过LDAP对您进行认证。默认情况下,Teradata使用TD2身份验证机制,这就是为什么您的内部密码可以工作而不是LDAP。