使用 R 到 MSSQL 的只读连接
Posted
技术标签:
【中文标题】使用 R 到 MSSQL 的只读连接【英文标题】:Read Only Connection to MSSQL Using R 【发布时间】:2019-04-03 11:13:20 【问题描述】:我一直在尝试使用 R 启动与 MSSQL 服务器的只读连接,但遇到了问题。
我可以使用 DBI 和 odbc 包不只读连接:
library(DBI)
library(odbc)
con <- DBI::dbConnect(
odbc::odbc(),
Driver = "DRIVER",
Server = "SERVER",
Database = "DATABASE",
UID = "USERNAME",
PWD = "PASSWORD",
Port = PORT
)
(或使用连接字符串)
con <- DBI::dbConnect(odbc::odbc(),
.connection_string = "Driver=DRIVER;Uid=USERNAME;Pwd=PASSWORD;Server=SERVER;Port=PORT;Database=DATABASE;")
我假设如果我将ApplicationIntent="ReadOnly"
或ApplicationIntent=ReadOnly;
添加到各自的代码中,这会起作用,但会导致超时。
我不确定这是否可以使用 ODBC/DBI,任何帮助将不胜感激!
【问题讨论】:
不是在数据库端设置的吗? 使用RODBC
包怎么样?我能够使用RODBC
和命令con <- odbcDriverConnect('Driver=SQL Server;Server=SERVERNAME,1433;Database=DATABSENAME;Trusted_Connection=yes;ApplicationIntent=ReadOnly')
连接到SQL Server 数据库
@KerryJackson 这是用于 MSSQL 的吗?我刚刚尝试过并收到网络错误:/。但是,当我删除“ApplicationIntent=ReadOnly”部分时,它可以工作!
是的,它适用于 MS SQL Server,它对我来说没有错误。也许您得到的错误不是因为包RODBC
或DBI
,而是因为您的服务器不允许这样做? ***.com/questions/15347541/… 可能有一些有用的链接
【参考方案1】:
您还可以将用于连接的用户的权限更新为仅查看权限。 以另一种方式解决问题。 否则,您可能会安装和使用: 库(RSQLServer) 自己找一个更好的 SQL 连接库。
【讨论】:
包“RSQLServer”不可用(适用于 R 版本 3.5.3)以上是关于使用 R 到 MSSQL 的只读连接的主要内容,如果未能解决你的问题,请参考以下文章
node-red node-red-contrib-mssql “连接错误:连接已关闭。”