【问题标题】:Cannot connect to Azure SQL DataWarehouse from RStudio using Active Directory Authentication无法使用 Active Directory 身份验证从 RStudio 连接到 Azure SQL DataWarehouse
【发布时间】:2019-05-29 15:07:23
【问题描述】:

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

connectionString="数据源 = abc.database.secure.windows.net; Authentication=Active Directory 密码; 初始目录=dbo; UID='用户名'; 密码= ;

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

我也尝试过 RODBC ..但在 Active Dir 身份验证方面没有得到太多帮助。

【问题讨论】:

  • 您有最新的 ODBC 驱动程序吗?您还需要安装在线服务登录助手 (go.microsoft.com/fwlink/?LinkId=234947)
  • 是的,我有最新的 ODBC 驱动程序。仍然无法使用 Active Directory 身份验证进行连接

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


【解决方案1】:

经过几次死胡同,我终于找到了真相。一个关键步骤是将您的 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")

【讨论】:

    【解决方案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 密码验证:

    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
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多