微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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行作为密码)放在对本地的调用中,以便包含密码的变量在使用时立即消失.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐