Невозможно подключиться к серверу Microsoft SQL из RStudio

1082
djhurio

Целью является чтение данных с сервера Microsoft SQL в RStudio. Я на Windows. Так что я:

  1. Установленный пакет RODBC;
  2. Создан ODBC DSN, указывающий на сервер SQL, с которого мне нужно прочитать данные.

Я могу успешно подключиться к серверу и читать данные через стандартный R на Windows (RGUI). Я могу определить соединение как с ошибками, так odbcConnect()и odbcDriverConnect()без них. Например:

> con <- odbcConnect("SQLB") > as.list(odbcGetInfo(con)) $DBMS_Name [1] "Microsoft SQL Server"  $DBMS_Ver [1] "09.00.5000"  $Driver_ODBC_Ver [1] "03.52"  $Data_Source_Name [1] "SQLB"  $Driver_Name [1] "SQLSRV32.DLL"  $Driver_Ver [1] "06.03.9600"  $ODBC_Ver [1] "03.80.0000"  $Server_Name [1] "SQLB\\SQLB" 

Если я делаю то же самое в RStudio, это всегда приводит к ошибкам:

> con <- odbcConnect("SQLB") Warning messages: 1: In RODBC::odbcDriverConnect("DSN=SQLB") : [RODBC] ERROR: state 08001, code 17, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. 2: In RODBC::odbcDriverConnect("DSN=SQLB") : [RODBC] ERROR: state 01000, code 67, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). 3: In RODBC::odbcDriverConnect("DSN=SQLB") : ODBC connection failed 

Для возврата сообщения об ошибке требуется в среднем 16,5 секунд.

> require(microbenchmark) > microbenchmark(odbcConnect("SQLB"), times = 10L) Unit: seconds expr min lq mean median uq max neval odbcConnect("SQLB") 16.52802 16.52953 16.53059 16.5298 16.53141 16.53639 10 There were 30 warnings (use warnings() to see them) 

Я пробовал другие драйверы, но ситуация та же - они все работают на R, но они терпят неудачу для RStudio. Я не могу понять, почему это работает в R, но это не работает в RStudio. Пожалуйста, спросите, следует ли предоставить более подробную информацию.

1

2 ответа на вопрос

1
djhurio

Это решение было действительно в течение одного месяца. Это начало терпеть неудачу и для R и для RStudio. Возможно, произошли некоторые изменения в политике безопасности, о которых я не знал.


Решение довольно необычное. Ранее моя установка RStudio была в

C:\Softs\RStudio\bin 

Я сделал новую установку RStudio в

C:\Users\MLiberts\Documents\RStudio-1.0.44\bin 

и проблема ушла. Имейте в виду, что я все еще использую старые настройки RStudio, поскольку они хранятся в

C:\Users\MLiberts\AppData\Local\RStudio-Desktop 

и я не изменил их.

Таким образом, кажется, что Windows 8 подразумевает разные разрешения для исполняемых файлов в зависимости от местоположения, в котором они хранятся. У меня есть полные разрешения, C:\Users\MLiberts\Documentsно у меня нет полных разрешений, C:\Softsно я могу читать и писать там.

C:\Softs\RStudio>icacls bin bin BUILTIN\Administrators:(I)(OI)(CI)(F) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) BUILTIN\Users:(I)(OI)(CI)(RX) NT AUTHORITY\Authenticated Users:(I)(M) NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)  C:\Users\MLiberts\Documents\RStudio-1.0.44>icacls bin bin NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) BUILTIN\Administrators:(I)(OI)(CI)(F) CSPDOM\mliberts:(I)(OI)(CI)(F) 
0
djhurio

Решение состоит в том, чтобы установить R и RStudio в качестве администратора в C:\Program Files\.