到 db2 的可信连接 RODBC - 语法
Trusted connection RODBC to db2 - syntax
我想在连接到我们的 DB2 数据库时使用可信连接。据我们所知,这应该是可能的……但我很难找到关于如何去做的信息。
当我提供我的 pwd 和 uid 但不是受信任的连接时,下面的代码有效。
我的问题是,我们认为我们可以使用可信连接是不是错了,这就是它失败的原因,或者是语法错误,"might" 使用正确的语法成功?
我在寻找 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")
编辑:我们正在 iSeries/IBM 此应用程序,其他内容使用 SQL-Server
IBM 对 trusted connection
使用的术语是 single sign-on
。一旦您 single sign-on
设置了 IBM i,您将能够使用您的 windows 跨 ODBC 登录来访问 DB2。 Windows 和 Active Directory 就是这样。在您这样做之前,IBM i 没有什么值得信任的。这是一个更详细解释它的手册:
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzamz/rzamzpdf.pdf
Trusted_Connection
是 DB2 Connect 驱动程序关键字。 IBM i Access ODBC 驱动程序不支持它。如果您想在没有 username/password 的情况下使用 IBM i Access ODBC 驱动程序进行连接,则需要使用 Kerberos。您可以在 ODBC DSN 属性或连接字符串中使用 SIGNON=4
来表示这一点,例如,
contst <- odbcDriverConnect("Driver=iSeries Access ODBC Driver;
System = kSysName; Database=kDbName;
SIGNON=4")
此处记录了 IBM i Access ODBC 驱动程序连接关键字:https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzaik/connectkeywords.htm
要设置 Kerberos,请参阅 jmarkmurphy 的回答中的 PDF。
我想在连接到我们的 DB2 数据库时使用可信连接。据我们所知,这应该是可能的……但我很难找到关于如何去做的信息。
当我提供我的 pwd 和 uid 但不是受信任的连接时,下面的代码有效。
我的问题是,我们认为我们可以使用可信连接是不是错了,这就是它失败的原因,或者是语法错误,"might" 使用正确的语法成功?
我在寻找 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")
编辑:我们正在 iSeries/IBM 此应用程序,其他内容使用 SQL-Server
IBM 对 trusted connection
使用的术语是 single sign-on
。一旦您 single sign-on
设置了 IBM i,您将能够使用您的 windows 跨 ODBC 登录来访问 DB2。 Windows 和 Active Directory 就是这样。在您这样做之前,IBM i 没有什么值得信任的。这是一个更详细解释它的手册:
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzamz/rzamzpdf.pdf
Trusted_Connection
是 DB2 Connect 驱动程序关键字。 IBM i Access ODBC 驱动程序不支持它。如果您想在没有 username/password 的情况下使用 IBM i Access ODBC 驱动程序进行连接,则需要使用 Kerberos。您可以在 ODBC DSN 属性或连接字符串中使用 SIGNON=4
来表示这一点,例如,
contst <- odbcDriverConnect("Driver=iSeries Access ODBC Driver;
System = kSysName; Database=kDbName;
SIGNON=4")
此处记录了 IBM i Access ODBC 驱动程序连接关键字:https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzaik/connectkeywords.htm
要设置 Kerberos,请参阅 jmarkmurphy 的回答中的 PDF。