Пакет keyring
является независимым от системы способом выполнения 6-го решения на странице , упомянутой JohnSG .Он имеет преимущество перед другими методами в том, что секретная информация никогда не сохраняется в открытом виде на вашем диске.
Этот метод предназначен для хранения паролей, но там может храниться любая строка.Например,
library(keyring)
key_set("DBPassword", "ichbinallen")
, в результате чего вам будет предложено ввести пароль для сохранения.Тогда ваш сценарий будет использовать
con = dbConnect(drv, dbname = "<DBNAME>", host = "<HOST>",
port = 5432, user = "<USER>",
password = key_get("DBPassword", "ichbinallen"))
Можно также хранить другие данные, кроме отдельных строк, но я так и использовал.
Он утверждает, что использует цепочку для ключей в MacOS,хранилище учетных данных в Windows и API секретной службы в Linux.Я не знаю, насколько это безопасно на самом деле;для меня это достаточно хорошо, чтобы не иметь этого в открытом виде.