rodbc 连接oracle,在R中加密密码 – 使用RODBC连接到Oracle DB

编辑:以下功能现在可以在我的R包

keyringr中使用.Keyringr包也具有类似的功能来访问Gnome Keyring和macOS Keychain.

如果您使用的是Windows,则可以使用PowerShell执行此操作.请参阅下面的博文.

从本质上讲…

>确保你有enabled PowerShell execution.

>将以下文本保存到名为EncryptPassword.ps1的文件中:

# Create directory user profile if it doesn't already exist.

$passwordDir = "$($env:USERPROFILE)\DPAPI\passwords\$($env:computername)"

New-Item -ItemType Directory -Force -Path $passwordDir

# Prompt for password to encrypt

$account = Read-Host "Please enter a label for the text to encrypt. This will be how you refer to the password in R. eg. MYDB_MYUSER

$SecurePassword = Read-Host -AsSecureString "Enter password" | convertfrom-securestring | out-file "$($passwordDir)\$($account).txt"

# Check output and press any key to exit

Write-Host "Press any key to continue..."

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

>执行上面的脚本(右键单击>使用PowerShell运行),为密码提供有意义的名称,然后输入密码.您现在可以通过检查%USERPROFILE%/ DPAPI / passwords / [PC NAME] / [PASSWORD IDENTIFIER.txt]中的文件来验证密码是否已加密

>现在从R中运行以下代码(我将此函数保存在每个脚本开头的I source的R脚本中.

getEncryptedPassword

# if path not supplied, use %USER_PROFILE%\DPAPI\passwords\computername\credential_label.txt as default

if (missing(credential_path)) {

credential_path

}

# construct command

command

# execute powershell and return command

return(system(command, intern=TRUE))

}

>现在,当您需要在R中提供密码时,可以运行以下命令,而不是硬编码/提示输入密码:

getEncryptedPassword("[PASSWORD IDENTIFIER]")

例如,而不是运行ROracle命令:

dbConnect(driver, "MYUSER", "MY PASSWORD", dbname="MYDB")

你可以改为运行它(我在步骤3中提供的标识符是“MYUSER_MYDB”:

dbConnect(driver, "MYUSER", getEncryptedPassword("MYUSER_MYDB"), dbname="MYDB")

>您可以根据需要重复步骤3以获取尽可能多的密码,并在步骤5中使用正确的标识符进行呼叫.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值