无法使用Active Directory身份验证从RStudio连接到Azure SQL DataWarehouse

时间:2016-10-12 19:01:38

标签: r azure active-directory azure-sql-database

我正在尝试使用Azure SQL Datawarehous连接到RStudio e。在仓库上设置的唯一身份验证是Active Directory密码身份验证。我尝试使用以下连接字符串。

  

connectionString ="数据源= abc.database.secure.windows.net;身份验证= Active Directory密码;   初始目录= dbo; UID ='用户名&#39 ;;    PWD =;

它以"neither DSN nor SERVER keywork supplied"失败。我不想建立一个DSN,因为我正在构建一个前端应用程序,它必须是可移植的。

我也尝试过RODBC ..但无法获得有关Active Dir身份验证的帮助。

4 个答案:

答案 0 :(得分:2)

对于集成的AD身份验证,连接字符串应如下所示:

Driver={ODBC Driver 13 for SQL Server};Server=tcp:{full qualified server name},1433;Database={dbname};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;Authentication=ActiveDirectoryIntegrated

对于AD passoword身份验证:

Driver={ODBC Driver 13 for SQL Server};Server=tcp:{full qualified server name},1433;Database={dbname};Uid={your_user_name};Pwd={your_password_here};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;Authentication=ActiveDirectoryPassword

答案 1 :(得分:0)

您是否下载了ADALSQL.DLL库https://www.microsoft.com/en-us/download/details.aspx?id=48742?需要连接到Azure AD。另外要仔细检查你使用的ODBC驱动程序是13.1 - 正确吗?

答案 2 :(得分:0)

如果上面提到的建议(ADALSQL.dll下载)无法解决您的问题,请为“使用SQL DB进行Azure AD身份验证”创建客户案例并将其报告给SQL客户服务。

答案 3 :(得分:0)

在经历了几次僵局之后,我终于走到了尽头。关键步骤是将ODBC驱动程序更新为ODBC驱动程序17。以下使用Azure Active Directory身份验证进行工作,该身份验证与使用者密钥/消费者机密稍有不同,但可能会达到相同的结果(即不使用SQL密码进行身份验证)。

library(DBI)
server <- "yourserver.database.windows.net"
database = "database-name"
con <- DBI::dbConnect(odbc::odbc(), 
                 UID = rstudioapi::askForPassword("username"),
                 Driver="ODBC Driver 17 for SQL Server",
                 Server = server, Database = database,
                 Authentication = "ActiveDirectoryInteractive")