sql – 如何处理R连接字符串中的DB密码?

前端之家收集整理的这篇文章主要介绍了sql – 如何处理R连接字符串中的DB密码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
虽然我不知道SO法定人数是多少,但问题本身很简单:
当您从R连接到数据库时,如何处理db连接字符串中的密码?

教程经常显示一个这样的例子.

con <- dbConnect(MysqL(),user="root",password="test",dbname="research_db",host="localhost",client.flag=CLIENT_MULTI_STATEMENTS)

如果数据库确实是您的实验本地主机,这可能有些现实.但是,如果您在服务器上使用多个用户,则可能不希望公开这样的数据库凭据.特别是当RStudio Server与sql数据库相结合时,您可能希望加密.你有什么经验?

解决方法

这是一个示例代码,使用tcltk软件包在隐藏实际值时提示输入密码:
library(tcltk)
tt <- tktoplevel()
pass <- tclVar()
tkpack(tklabel(tt,text='Password:'))
tkpack(tkentry(tt,textvariable=pass,show='*'))
tkpack(tkbutton(tt,text="Done",command=function()tkdestroy(tt)))
tkwait.window(tt)
tclvalue(pass)

在这种情况下,它只是在最后打印出未隐藏的密码,但是可以将其包装在一个函数中以返回该值,然后将其用作password参数的值.或者您可以将此和连接调用(使用tclvalue行作为密码)放在对本地的调用中,以便包含密码的变量在使用时立即消失.

猜你在找的MsSQL相关文章