2017-08-16 96 views
0

我想在连接到DB2数据库时使用可信连接。据我们所知它应该是可能的......但我很难找到如何做到这一点的信息。可信连接RODBC到db2 - 语法

下面的代码在我提供pwd和uid但不可信的连接时工作。

我的问题是我们错误的时候认为我们可以使用可信连接,这就是为什么它失败或语法错误,它“可能”用正确的语法成功?

我找SQL-Server时得到吨的结果,但是DB2更是一个黑盒子...

代码

library(RODBC) 

kSysName <- "MySys" 
kDbName <- "MyDB" 

contst <- odbcDriverConnect("Driver=iSeries Access ODBC Driver; 
          System = kSysName; Database=kDbName; 
          Trusted_Connection = Yes") 

错误代码

ERROR: state 28000, code 8015

此作品:

uid <- "MyUserName" 
pwd <- "MyPwd" 
contst <- odbcDriverConnect("Driver=iSeries Access ODBC Driver; 
          System = kSysName; Database=kDbName; 
          uid = uid; pwd = pwd") 

编辑:我们在i系列/ IBM为这个应用程序,其他的东西使用SQL-服务器

+0

您是否在iSeries/IBM i上,如上面的代码段所示? –

+0

@data_henrik是的,我会编辑清楚 – ErrantBard

+0

我猜你在Windows中使用域安全。您是否使用IBM i设置了单点登录? – jmarkmurphy

回答

1

Trusted_Connection是DB2 Connect驱动程序的关键字。它不受IBM i Access ODBC驱动程序支持。如果您要使用IBM i Access ODBC驱动程序连接而不使用用户名/密码,则需要使用Kerberos。您可以通知该使用SIGNON=4在ODBC DSN属性或在连接字符串如

contst <- odbcDriverConnect("Driver=iSeries Access ODBC Driver; 
          System = kSysName; Database=kDbName; 
          SIGNON=4") 

的IBM i的访问ODBC驱动程序连接关键字记录在这里:https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzaik/connectkeywords.htm

要设置Kerberos,请参阅PDF格式在jmarkmurphy的答案。