Não é possível conectar-se ao servidor Microsoft SQL a partir do RStudio

1

O objetivo é ler dados de um servidor Microsoft SQL no RStudio. Eu estou no Windows. Então eu tenho:

  1. Pacote RODBC instalado;
  2. DSN ODBC criado apontando para o servidor SQL Eu preciso ler os dados de.

Posso conectar-me com êxito ao servidor e ler os dados por meio do R padrão no Windows (RGUI). Eu posso definir conexão com odbcConnect() ou odbcDriverConnect() sem nenhum erro. Por exemplo:

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

Se eu fizer o mesmo no RStudio, ele sempre falhará com mensagens de erro:

> 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

Leva em média 16,5 segundos para retornar a mensagem de erro.

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

Eu tentei outros drivers, mas a situação é a mesma - todos trabalham para o R, mas falham no RStudio. Eu não consigo entender porque funciona em R mas não funciona no RStudio. Por favor, pergunte se mais detalhes devem ser fornecidos.

    
por djhurio 14.11.2016 / 12:05

2 respostas

0

A solução é instalar o R e o RStudio como administrador em C:\Program Files\ .

    
por 16.12.2016 / 11:26
1

Esta solução foi válida por um mês. Começou a falhar tanto para o R quanto para o RStudio. Provavelmente houve algumas alterações na política de segurança das quais eu não estava ciente.

A solução é bem incomum. Anteriormente, minha instalação do RStudio estava em

C:\Softs\RStudio\bin

Eu fiz uma nova instalação do RStudio em

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

e o problema desapareceu. Tenha em mente que eu ainda estou usando as configurações antigas do RStudio como elas são armazenadas em

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

e eu não os mudei.

Portanto, parece que o Windows 8 está implicando permissões diferentes em arquivos executáveis dependendo do local onde estão armazenados. Tenho permissões totais em C:\Users\MLiberts\Documents , mas não tenho permissões totais em C:\Softs , mas posso ler e escrever lá .

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)
    
por 15.11.2016 / 08:52