You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用ODBC连接SQL Server时出现登录失败错误求助

R连接SQL Server ODBC时登录失败问题

问题描述

已在Windows系统中成功创建并测试了SQL Server的ODBC数据源对象,但在RStudio中执行以下代码连接数据库时:

library(DBI)
con <- dbConnect(odbc::odbc(), "ReadUser")

出现如下错误:

Error: nanodbc/nanodbc.cpp:1135: 28000: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''.

附ODBC设置截图:
ODBC设置
测试成功截图:
连接测试成功

请求协助完成R与SQL Server的连接设置。


解决方案

1. 匹配身份验证方式补充连接参数

错误核心是R未传递有效登录凭据,根据ODBC配置的身份验证方式调整代码:

  • Windows身份验证:确保RStudio以有权访问SQL Server的Windows用户启动,代码添加信任连接参数:
con <- dbConnect(odbc::odbc(), 
                 dsn = "ReadUser",
                 Trusted_Connection = "YES")
  • SQL Server身份验证:显式指定SQL用户名和密码:
con <- dbConnect(odbc::odbc(), 
                 dsn = "ReadUser",
                 UID = "你的SQL登录用户名",
                 PWD = "你的SQL登录密码")

2. 检查ODBC数据源与RStudio位数匹配

RStudio的位数(32/64位)必须和创建的ODBC数据源位数一致:

  • 执行Sys.getenv("R_ARCH")查看RStudio位数:输出/x64为64位,/i386为32位
  • 打开对应位数的ODBC数据源管理器,确认ReadUser存在于对应列表中

3. 验证ODBC数据源配置细节

打开ODBC数据源管理器:

  • 若用SQL Server身份验证,确认是否在数据源配置中保存了用户名
  • 若用Windows身份验证,确认是否勾选了「信任连接」选项

4. 跳过DSN直接指定连接信息(可选)

如果DSN方式仍有问题,可直接在代码中指定驱动、服务器等信息:

con <- dbConnect(odbc::odbc(),
                 Driver = "ODBC Driver 17 for SQL Server", # 替换为你安装的驱动版本
                 Server = "你的SQL服务器地址",
                 Database = "目标数据库名称",
                 Trusted_Connection = "YES") # Windows身份验证用此参数,SQL身份验证替换为UID和PWD

内容的提问来源于stack exchange,提问作者afrologicinsect

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:52:41