如何通过R连接到MS SQL数据库,需要使用ODBC和DBI软件包进行集成的Active Directory身份验证



我当前正在尝试从rstudio内部连接到某些SQL数据库。

使用Windows身份验证的第一个数据库,我可以轻松地使用以下方式访问:

con <- dbConnect(odbc(), Driver = "SQL Server", Server = "ServerName", 
                 Database = "DatabaseName", Trusted_Connection = "True")

但是,我们还有另一个数据库,该数据库需要集成的Active Directory身份验证,并且上述代码(更改了相关服务器和数据库名称)将生成错误:

Error: nanodbc/nanodbc.cpp:950: HY000: [Microsoft][ODBC SQL Server Driver][SQL Server]Windows logins are not supported in this version of SQL Server. 

我尝试了各种事情,包括以下内容:

con <- dbConnect(odbc(), Driver = "SQL Server", Server = "Server_Two_Name", 
                 Database = "Database_2_Name", Trusted_Connection = "True", Authentication = "ActiveDirectoryIntegrated")
con <- dbConnect(odbc(), Driver = "SQL Server", Server = "Server_Two_Name", 
                 Database = "Database_2_Name", Trusted_Connection = "FALSE", Authentication = "ActiveDirectoryIntegrated")

但是,我没有尝试过任何东西允许我成功建立联系。(如果我指定服务器和数据库名称,并将身份验证设置为" Active Directory-集成",而无需输入密码或用户名,则可以使用SQL Server Management Studio成功连接到数据库。

)。

我尝试在https://db.rstudio.com和DBI和ODBC软件包的文档上阅读指南,但我没有完全理解所提供的信息。

请任何人建议吗?

这适用于我的Azure Cloud SQL Server数据库,该数据库需要" Azure Active Directory-集成"身份验证:

#Database Connection Details
SQL_SERVER_NAME <- "Your SQL Server Name Goes Here"
SQL_DATABASE_NAME <- "Your Database Name Goes Here"
# Connect to database (assumes odbc and DBI packages are installed and libraries added)
con <- dbConnect(odbc(),
  Driver = "ODBC Driver 17 for SQL Server",
  Server = SQL_SERVER_NAME,
  Database = SQL_DATABASE_NAME,
  Authentication = "ActiveDirectoryIntegrated"
)

也请注意,这也需要在计算机上安装SQL Server的ODBC驱动程序17。

相关内容

最新更新