rjdbc sql查询:“此驱动程序未配置为集成身份验证”

ghhaqwfi  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(380)

为了使用r库rjdbc来运行sql查询,我在计算机上安装了sqljdbc驱动程序。
正如我以前在其他机器上所做的那样,在r中安装rjdbc包之前,我已经将mssql-jcb\u auth-8.4.1.x64.dll复制到java/jdk-…/bin目录。
当我尝试从r连接到sql服务器时,即。

dbhandle = dbConnect(drv, "jdbc:sqlserver://dw_sqlXX_YY; databaseName=my_db; integratedSecurity=true;")

我收到以下错误消息:

Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],  : com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:83a3242e-097f-4a69-9eed-d1ccbecadc7b

我查了“未配置集成身份验证的驱动程序”,发现了一个相关的stackoverflow post,
jdbc sqlserverexception:“此驱动程序未配置为集成身份验证。”
在指示用户的地方,请确保.dll同时位于驱动程序目录和java的bin目录中。我已经满足了这些要求,以及64位兼容性问题。
还有什么我可能错过的,我可以试试吗?驱动程序版本(我有8.4)和jdkjava的最新版本或r中的rjdbc包之间是否存在不兼容的问题?似乎我已经用尽了其他的选择。

q3aa0525

q3aa05251#

将dll放在一个目录中,并将该目录添加到path环境变量中。这是推荐的方法(将它放在jdk的bin文件夹中并不一定有效,而且它可能是“错误的”jdk)。另请参见在windows上连接集成身份验证。

eoigrqb6

eoigrqb62#

一开始我也有很多问题。试试这个:

drv <- JDBC(driverClass = "class", classPath = "path")
dbhandle = dbConnect(drv, "jdbc:sqlserver://dw_sqlXX_YY; databaseName=my_db; integratedSecurity=true;", username, password)

如果不起作用,请检查以下内容:
上课没问题。
路径正常。
用户名和密码正常。
您已经安装了java。
您已经安装了rjava和dbi包。
但是,我建议您使用rodbc包。rodbc效率更高,没有尺寸限制,您不需要高技术知识。这里有一个很好的教程。

相关问题