sql-server R -如何通过身份验证“SQL Server身份验证”连接到数据库

rdlzhqv9  于 2022-10-31  发布在  SQL Server
关注(0)|答案(2)|浏览(260)

我正在尝试通过R连接到一个数据库,该数据库的身份验证类型为“SQL Server身份验证”,如“Microsoft SQL Server Management Studio 18”中所述。
我知道库DBI有一个名为'dbconnect()'的函数,它有一个身份验证参数,但文档没有显示不同类型的身份验证是什么。我已经尝试了'SQLServer'和'SQL Server',但它只是输出相同的错误:
“为连接字符串属性”Authentication“指定的值无效“
有没有人做过类似的联系?

qni6mghb

qni6mghb1#

我自己没有使用过这个软件包,但在www.example.com上https://github.com/r-dbi/odbc#connecting-to-a-database看到了这个代码片段作为示例:

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”或“ODBC Driver 17 for SQL Server”之类的驱动程序。您可以通过访问ODBC数据源管理器并找出您拥有的驱动程序来检查这一点(至少在Windows上)。类似的驱动程序可能更符合您的需求:

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")
8oomwypt

8oomwypt2#

以下代码将以当前Windows用户身份连接到LOCALHOST\EXPRESS示例上的Northwind数据库:

conn_str <- 'driver={SQL Server};server=LOCALHOST\\SQLEXPRESS;database=Northwind;trusted_connection=true')
mssql_conn <- DBI::dbConnect(odbc::odbc(), .connection_string = conn_str)

相关问题