R 连接到 MS SQL

R connection to MS SQL

使用 R 我正在尝试连接到 Azure VM 上的 MS SQL 2014 (不是 windows 身份验证)

library(RODBC)
conn <- odbcDriverConnect(connection = "Driver=SQL Server;Server=someinternetmachine.cloudapp.net;Database=MyDatabase;Uid=MyUsername;Pwd=MyPassword;")
queryResult <- sqlQuery(conn, "SELECT top 10 * FROM sometable")

使用 RODBC 是否可以只使用连接字符串(无 DSN)在任何地方执行此操作?

使用上面的方法我得到以下错误

Warning messages:
1: In odbcDriverConnect("driver={SQL Server};server=servername\instancename,port;database=testing;uid=abc;pwd=123456") :
  [RODBC] ERROR: state 08001, code 6, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]Specified SQL server not found.
2: In odbcDriverConnect("driver={SQL Server};server=servername\instancename,port;database=testing;uid=abc;pwd=123456") :
[RODBC] ERROR: state 01000, code 11001, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
3: In odbcDriverConnect("driver={SQL Server};server=servername\instancename,port;database=testing;uid=abc;pwd=123456") :

ODBC 连接失败

您是否选择 public 为 Azure 中的 VM 配置?此外,您需要在 Windows 防火墙中为 SQL 服务器打开端口(端口号取决于默认或命名实例)。此外,在命名实例的情况下,如果您使用的是动态端口,则还需要打开 SQL 浏览器。可以在 link here.

中找到更多信息

设法使它与

一起工作
driver.name <- "SQL Server"
db.name <- "master"
host.name <- "someinternetmachine.cloudapp.net"
port <- ""
server.name <- "someinternetmachine.cloudapp.net"
user.name <- "MyUsername"
pwd <- "MyPassword"
# Use a full connection string to connect 
con.text <- paste("DRIVER=", driver.name,
              ";Database=", db.name,
              ";Server=", server.name,
              ";Port=", port,
              ";PROTOCOL=TCPIP",
              ";UID=", user.name,
              ";PWD=", pwd, sep = "")

con1 <- odbcDriverConnect(con.text)

res <- sqlQuery(con1, 'select * from information_schema.tables')

odbcCloseAll()