A solução é instalar o R e o RStudio como administrador em C:\Program Files\
.
O objetivo é ler dados de um servidor Microsoft SQL no RStudio. Eu estou no Windows. Então eu tenho:
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.
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)
Tags windows windows-8 r rstudio sql-server