我正在使用R Studio通过library(RODBC)
连接到SQL Server Management。
请注意,以下代码在我的本地系统上可用,但是在尝试远程连接时不起作用。
这是我的连接代码:
connection <- RODBC::odbcDriverConnect( 'driver={SQL Server};server=SERVERNAME ;database=DBNAME;trusted_connection=TRUE' )
我收到以下警告消息:
Warning messages:
1: In RODBC::odbcDriverConnect("driver={SQL Server};server=SERVERNAME;database=DBNAME;trusted_connection=TRUE") :
[RODBC] ERROR: state 08001, code 18, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]SSL Security error
2: In RODBC::odbcDriverConnect("driver={SQL Server};server=SERVERNAME;database=DBNAME;trusted_connection=TRUE") :
[RODBC] ERROR: state 01000, code 772, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (SECDoClientHandshake()).
3: In RODBC::odbcDriverConnect("driver={SQL Server};server=SERVERNAME;database=DBNAME;trusted_connection=TRUE") :
ODBC connection failed
这真的很奇怪,因为我绝对可以访问所涉及的服务器和数据库。
值得注意的是,我可以从本地系统访问服务器(以上代码有效),并且可以访问远程系统(代码无效)。
知道为什么会这样吗?
答案 0 :(得分:0)
RODBC
并不是一个很好的软件包,最好使用RStudio构建的odbc
代替:
library(odbc)
con <- dbConnect(odbc(),
Driver = "SQL Server",
Server = "SERVER",
Database = "DATABASE",
Trusted_Connection = "True" ,
timeout = 5000
)
答案 1 :(得分:-1)
在以下命令行中
connection <- RODBC::odbcDriverConnect( 'driver={SQL Server};server=SERVERNAME ;database=DBNAME;trusted_connection=TRUE' )
make trust_connection = FALSE或否。这是SSL错误的简单案例。如果您使用的是Linux,则对于服务器,请使用IP地址而不是主机名。