我正试图通过R连接到一个数据库,该数据库的身份验证类型为"SQL Server authentication",如通过"Microsoft SQL Server Management Studio 18"所述。
我知道库DBI有一个名为"dbconnect(("的函数,它有一个身份验证参数,但文档中没有显示不同类型的身份验证。我尝试过"SQLServer"one_answers"SQLServer",但它只是输出相同的错误:
"为连接字符串属性"Authentication"指定的值无效;
有人有类似的联系吗?
我自己没有使用这个包,但正在查看https://github.com/r-dbi/odbc#connecting-它给出了这个片段作为一个例子:
library(DBI)
con <- dbConnect(odbc::odbc(),
driver = "PostgreSQL Driver",
database = "test_db",
uid = "postgres",
pwd = "password",
host = "localhost",
port = 5432)
为了使其特定于您的使用,您需要知道要使用哪个ODBC驱动程序,它很可能是类似于";SQL Server Native Client 11.0";或";"用于SQL Server的ODBC驱动程序17";。您可以(至少在Windows上(通过访问ODBC数据源管理员并找出您拥有的驱动程序来检查此项。类似的东西可能更像你想要的:
library(DBI)
con <- dbConnect(odbc::odbc(),
driver = "SQL Server Native Client 11.0",
database = "db_name_goes_here",
uid = "Wallace_H",
pwd = "password_321",
host = "server_goes_here")
更容易的是,如果你有一个嵌入了用户名和密码的命名DSN配置(同样可以通过Windows上的ODBC数据源管理进行检查(,如果你已经有了,那么你可以通过以下方式连接:
con <- dbConnect(odbc::0dbc(), "DSN_Name_goes_here")
以下是将作为当前Windows用户连接到LOCALHOSTEXPRESS
实例上的Northwind
数据库的代码:
conn_str <- 'driver={SQL Server};server=LOCALHOST\SQLEXPRESS;database=Northwind;trusted_connection=true')
mssql_conn <- DBI::dbConnect(odbc::odbc(), .connection_string = conn_str)