使用R从Windows Cred Vault获取凭据时出错

时间:2018-09-21 22:58:10

标签: r windows postgresql credentials

我收到以下错误信息...

Error in b_wincred_i_get(target) : 
Windows credential store error in 'get': Element not found.

...在R v3.5.1(R Studio v1.1.456)和密钥环v1.1.0中运行以下脚本时。我正在尝试在新的设置上执行此操作,因此不确定是否可以像防火墙问题一样简单。尝试获取密码(key_get(json_data$service, json_data$user)时,脚本出错。我尝试将服务和用户名手动插入key_get方法中(而不是使用配置文件中的变量),但是遇到相同的错误。配置文件是一个json文件,其中包含除密码之外的所有连接详细信息,密码显然是从Windows Credentials Vault中检索到的。非常感谢为解决此问题而提供的任何帮助。

library(RJDBC)
library(keyring)
library(jsonlite)

postgres.connection <- function(json_data){

  print("Creating Postgres driver...")
  pDriver <- JDBC(driverClass=json_data$driver, classPath="C:/Users/Drivers/postgresql-42.2.4.jar")

  print("Connecting to Postgres...")
  server <- paste("jdbc:postgresql://", json_data$host, ":", json_data$port, "/", json_data$dbname, sep="")
  pConn <- dbConnect(pDriver, server, json_data$user, key_get(json_data$service, json_data$user))

  return(pConn)

}

json_data <- fromJSON("C:/Users/Configs/Config.json", simplifyVector = TRUE, simplifyDataFrame = TRUE)
json_data_connection <- json_data$postgres$local_read
pc <- postgres.connection(json_data_connection)

1 个答案:

答案 0 :(得分:0)

您提到这是一个新设置。密码中已经存在密码吗?要进行检查,请转到“控制面板”>“用户帐户”>“凭据管理器”>“ Windows凭据”,它是否在“通用凭据”下? 我可以通过运行得到相同的错误: key_get('not-valid-service', 'some-user')