如何使用托管在 AWS ubuntu 服务器上的 Rstudio Connect 中的 R 访问托管在 Azure Windows VM 上的 SQL 服务器数据库?
How to access SQL Server database hosted on Azure Windows VM using R from Rstudio Connect hosted on AWS ubuntu server?
我无法从 RStudio Connect 服务器访问托管在 Azure Windows VM 上的 SQL 服务器数据库。 SQL 服务器配置为允许远程连接。我徒劳地尝试了以下 R 代码。我还查看了该论坛上的其他帖子。但是,none 解决了这种特定情况。
odbc.ini 文件内容:
[dbname]
Driver = /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1
Server = azure_wvm_name.corp.mycompany.com
ServerSPN = MSSQLSvc/azure_wvm_name.corp.mycompany.com:1433
Database = sqldb
Port = 1433
UID = mycompany\rkahn
PWD = myPassword
Trusted_Connection = yes
Encrypt = yes
TrustServerCertificate = yes
Kerberos = Yes
telnet ip_address 1433
,正如“AlwaysLearning”所建议的那样有效。
有人可以让我知道我的代码中缺少什么吗?
library(odbc)
library(DBI)
UserId <- 'mycompany\rkahn'
UserPassword <- 'myPassword'
dbname <- 'sqldb'
sqlsrvcon <- dbConnect(odbc(),
Driver = "ODBC Driver 18 for SQL Server",
Server = "azure_wvm_name.corp.mycompany.com",
Database = dbname,
UID = UserId,
PWD = UserPassword,
Port = 1433)
我收到此错误消息:
错误:nanodbc/nanodbc.cpp:1021: 00000: [Microsoft][SQL 服务器的 ODBC 驱动程序 18] 登录超时已过期 [Microsoft][SQL 服务器的 ODBC 驱动程序 18]MAX_PROVS:连接字符串无效 [87]。 [Microsoft][SQL 服务器的 ODBC 驱动程序 18]建立与 SQL 服务器的连接时发生了与网络相关或特定于实例的错误。
我可以通过 ODBC DSN 连接到 SQL 服务器
ubuntu@ip-xxx-xx-xx-xx:~$ isql -v dsnName
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
但是当我尝试使用 R 连接时
con <- DBI::dbConnect(odbc::odbc(), "dsnName")
我收到此错误: 错误:nanodbc/nanodbc.cpp:1021: 00000: [Microsoft][SQL 服务器的 ODBC 驱动程序 18]SSL提供商:[错误:1416F086:SSL routines:tls_process_server_certificate:certificate 验证 failed:self 签名证书] [Microsoft][SQL 服务器的 ODBC 驱动程序 18] 客户端无法建立连接
最后这对我有用:
library(odbc)
library(DBI)
UserId <- 'mycompany\rkahn'
UserPassword <- 'myPassword'
dbname <- 'sqldb'
sqlsrvcon <- dbConnect(odbc(),
Driver = "/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1",
Server = "azure_wvm_name.corp.mycompany.com",
Database = dbname,
UID = UserId,
PWD = UserPassword,
Encrypt="yes",
TrustServerCertificate="yes",
Port = 1433)
我无法从 RStudio Connect 服务器访问托管在 Azure Windows VM 上的 SQL 服务器数据库。 SQL 服务器配置为允许远程连接。我徒劳地尝试了以下 R 代码。我还查看了该论坛上的其他帖子。但是,none 解决了这种特定情况。
odbc.ini 文件内容:
[dbname]
Driver = /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1
Server = azure_wvm_name.corp.mycompany.com
ServerSPN = MSSQLSvc/azure_wvm_name.corp.mycompany.com:1433
Database = sqldb
Port = 1433
UID = mycompany\rkahn
PWD = myPassword
Trusted_Connection = yes
Encrypt = yes
TrustServerCertificate = yes
Kerberos = Yes
telnet ip_address 1433
,正如“AlwaysLearning”所建议的那样有效。
有人可以让我知道我的代码中缺少什么吗?
library(odbc)
library(DBI)
UserId <- 'mycompany\rkahn'
UserPassword <- 'myPassword'
dbname <- 'sqldb'
sqlsrvcon <- dbConnect(odbc(),
Driver = "ODBC Driver 18 for SQL Server",
Server = "azure_wvm_name.corp.mycompany.com",
Database = dbname,
UID = UserId,
PWD = UserPassword,
Port = 1433)
我收到此错误消息: 错误:nanodbc/nanodbc.cpp:1021: 00000: [Microsoft][SQL 服务器的 ODBC 驱动程序 18] 登录超时已过期 [Microsoft][SQL 服务器的 ODBC 驱动程序 18]MAX_PROVS:连接字符串无效 [87]。 [Microsoft][SQL 服务器的 ODBC 驱动程序 18]建立与 SQL 服务器的连接时发生了与网络相关或特定于实例的错误。
我可以通过 ODBC DSN 连接到 SQL 服务器
ubuntu@ip-xxx-xx-xx-xx:~$ isql -v dsnName
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
但是当我尝试使用 R 连接时
con <- DBI::dbConnect(odbc::odbc(), "dsnName")
我收到此错误: 错误:nanodbc/nanodbc.cpp:1021: 00000: [Microsoft][SQL 服务器的 ODBC 驱动程序 18]SSL提供商:[错误:1416F086:SSL routines:tls_process_server_certificate:certificate 验证 failed:self 签名证书] [Microsoft][SQL 服务器的 ODBC 驱动程序 18] 客户端无法建立连接
最后这对我有用:
library(odbc)
library(DBI)
UserId <- 'mycompany\rkahn'
UserPassword <- 'myPassword'
dbname <- 'sqldb'
sqlsrvcon <- dbConnect(odbc(),
Driver = "/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1",
Server = "azure_wvm_name.corp.mycompany.com",
Database = dbname,
UID = UserId,
PWD = UserPassword,
Encrypt="yes",
TrustServerCertificate="yes",
Port = 1433)