r - 在 R 中使用 DBI:dbConnect 连接到 SQL Server 的问题
问题描述
我尝试的第一种方法有效。我首先在我的 Windows 上my_connection_name
定义了一个 ODBC 连接。ODBC data source administrator
然后我使用以下代码:
library(DBI)
library(odbc)
con <- DBI::dbConnect(odbc(),
dsn='my_connection_name',
UID = "firstname.lastname@company.com",
PWD = "mypassword")
这很好用!
但是,当我尝试在dbConnect
函数中定义驱动程序、服务器和数据库名称时。它失败!
con <- DBI::dbConnect(odbc(),
Driver = "ODBC Driver 13 for SQL Server",
Server = 'my_server_name',
Database = "my_database_name",
UID = "firstname.lastname@company.com",
PWD = "mypassword",
Trusted_Connection = "yes")
我收到错误:
Error: nanodbc/nanodbc.cpp:950: 08S01: [Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: An existing connection was forcibly closed by the remote host.
有趣的是,当我删除Trusted_Connection = "yes"
.
con <- DBI::dbConnect(odbc(),
Driver = "ODBC Driver 13 for SQL Server",
Server = 'my_server_name',
Database = "my_database_name",
UID = "firstname.lastname@company.com",
PWD = "mypassword")
我收到这样的错误消息:
错误:nanodbc/nanodbc.cpp:950: HY000: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]无法打开登录请求的服务器“company.com”。登录失败。
之前定义 ODBC 连接时,我使用了相同的驱动程序、服务器和数据库名称。
我的身份验证选项是ActiveDirectoryPassword
.
有谁知道发生了什么?
解决方案
如果使用 Trusted Connection = Yes,则无需提供用户名和密码。您的服务帐户将用于连接到您的 sql 服务器。
con <- DBI::dbConnect(odbc(),
Driver = "ODBC Driver 13 for SQL Server",
Server = 'my_server_name',
Database = "my_database_name",
Trusted_Connection = "yes")
推荐阅读
- corda - Corda 升级流程/合约,无需关闭节点
- android - 带有 Google Cloud Project 标记的帐户丢失。如何导入FCM?
- c# - 如何更改代码以读取已通过 IDataReader 编写的 linq 结果
- markdown - 文档中的 Markdown 链接到带有句点的标题
- guava - 如何配置 Guava EventBus Dispatcher?
- php - php计算总小时和分钟和秒
- pyspark - 以追加模式写入pyspark中的红移
- powershell - 如何修复在一段时间内获得审核
- android - Android- 错误:任务 ':app:transformClassesWithDexForRelease' 在 android 1.5.1 中执行失败
- xamarin.uwp - UWP VLC.MediaElement 在导航回当前页面时播放视频流