Подключение ODBC в R с проверкой подлинности по паролю Azure Active Directory

#r #sql-server #azure-active-directory #odbc

#r #sql-сервер #azure-active-directory #odbc

Вопрос:

Я пытаюсь подключиться к SQL server из R и использую аутентификацию по паролю Azure Active Directory. Мое соединение в R определяется следующим образом :

 ch <- odbc::dbConnect(odbc(),
                        DSN = "myDSN",
                        Database = "dbname",
                        Authentication="ActivedirectoryPassword",
                        UID = uid,
                        PWD = password
        )
  

Это сбой из-за следующей ошибки :

 Error: nanodbc/nanodbc.cpp:983: FA004: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Failed to authenticate the user 'my_user_id' in Active Directory (Authentication option is 'ActiveDirectoryPassword').
Error code 0x800401F0; state 10
CoInitialize has not been called. 
  

Однако, когда я тестирую точно такой же параметр в конфигурации Microsoft SQL Server DSN, все в порядке, и я могу успешно подключиться к той же базе данных :
введите описание изображения здесь

Есть идеи, если я что-то здесь упускаю ?!

Комментарии:

1. Кажется уместным, ошибка Azure SQL Server: не была вызвана совместная инициализация. #343

2. Попытался подключиться с Linux-компьютера с помощью пакета R odbc версии 1.3.0 и драйвера ODBC 17 для SQL Server — все работало нормально.

Ответ №1:

Согласно моему тесту, если я использую package odbc 1.2.3 , для меня это нормально.

 library(odbc)
uid <- ""
pwd <- ""
ch <- odbc::dbConnect(odbc(),
  DSN = "mydsn",
  Database = "xxx",
  Authentication="ActivedirectoryPassword",
  UID = uid,
  PWD = pwd
)
dbListTables(ch)
  

введите описание изображения здесь