Es kann keine Verbindung mit dem Microsoft SQL-Server von RStudio hergestellt werden

1181
djhurio

Ziel ist es, Daten von einem Microsoft SQL-Server in RStudio zu lesen. Ich bin unter Windows. Also habe ich:

  1. Installiertes RODBC-Paket;
  2. Erstellt ODBC-DSN, der auf den SQL-Server zeigt, von dem ich Daten lesen muss.

Ich kann erfolgreich eine Verbindung zum Server herstellen und Daten über den Standart R unter Windows (RGUI) lesen. Ich kann Verbindung mit odbcConnect()oder odbcDriverConnect()ohne Fehler definieren. Zum Beispiel:

> 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" 

Wenn ich dasselbe in RStudio mache, schlägt das immer mit Fehlermeldungen fehl:

> 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 

Es dauert durchschnittlich 16,5 Sekunden, um die Fehlermeldung zurückzugeben.

> 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) 

Ich habe andere Treiber ausprobiert, aber die Situation ist die gleiche - sie arbeiten alle für R, aber sie schlagen für RStudio fehl. Ich kann nicht verstehen, warum es in R funktioniert, aber es funktioniert nicht in RStudio. Bitte fragen Sie, ob weitere Details angegeben werden sollen.

1

2 Antworten auf die Frage

1
djhurio

Diese Lösung war einen Monat gültig. Es begann sowohl für R als auch für RStudio zu versagen. Wahrscheinlich gab es einige Sicherheitsrichtlinienänderungen, die mir nicht bekannt waren.


Die Lösung ist ziemlich ungewöhnlich. Zuvor war meine RStudio-Installation in

C:\Softs\RStudio\bin 

Ich habe eine neue Installation von RStudio in gemacht

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

und das Problem ist weg. Beachten Sie, dass ich immer noch die alten Einstellungen des RStudio verwende, wie sie gespeichert sind

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

und ich habe sie nicht verändert.

Es scheint also, dass Windows 8 unterschiedliche Berechtigungen für ausführbare Dateien impliziert, abhängig vom Speicherort, an dem sie gespeichert sind. Ich habe volle Berechtigungen, C:\Users\MLiberts\Documentsaber ich habe keine vollständigen Berechtigungen, C:\Softsjedoch kann ich dort lesen und schreiben.

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

Die Lösung besteht darin, R und RStudio als Administrator in zu installieren C:\Program Files\.