使用 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 &lt;- odbcDriverConnect('Driver=SQL Server;Server=SERVERNAME,1433;Database=DATABSENAME;Trusted_Connection=yes;ApplicationIntent=ReadOnly') 连接到SQL Server 数据库 @KerryJackson 这是用于 MSSQL 的吗?我刚刚尝试过并收到网络错误:/。但是,当我删除“ApplicationIntent=ReadOnly”部分时,它可以工作! 是的,它适用于 MS SQL Server,它对我来说没有错误。也许您得到的错误不是因为包RODBCDBI,而是因为您的服务器不允许这样做? ***.com/questions/15347541/… 可能有一些有用的链接 【参考方案1】:

您还可以将用于连接的用户的权限更新为仅查看权限。 以另一种方式解决问题。 否则,您可能会安装和使用: 库(RSQLServer) 自己找一个更好的 SQL 连接库。

【讨论】:

包“RSQLServer”不可用(适用于 R 版本 3.5.3)

以上是关于使用 R 到 MSSQL 的只读连接的主要内容,如果未能解决你的问题,请参考以下文章

node-red node-red-contrib-mssql “连接错误:连接已关闭。”

symfony 5.3 连接微软 sql server mssql

Codeigniter MSSQL/SQLSRV 连接

为啥使用连接时 ARel 范围变为只读?

无法使用 FreeTDS 连接 MSSQL 服务器

php连接微软MSSQL(sql server)完全攻略