Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

R में पासवर्ड एन्क्रिप्ट करें - RODBC का उपयोग करके Oracle DB से कनेक्ट करने के लिए

संपादित करें:नीचे दी गई कार्यक्षमता अब मेरे आर पैकेज कीरिंगर में उपलब्ध है। कीरिंगर पैकेज में जीनोम कीरिंग और मैकोज़ किचेन तक पहुंचने के समान कार्य हैं।

---

यदि आप Windows का उपयोग कर रहे हैं तो आप ऐसा करने के लिए PowerShell का उपयोग कर सकते हैं। नीचे मेरा ब्लॉग पोस्ट देखें।

http://www.gilfillan.space/2016/04/21/Using-PowerShell-and-DPAPI-to-securely-mask-passwords-in-R-scripts/

अनिवार्य रूप से...

  1. सुनिश्चित करें कि आपने पावरशेल निष्पादन सक्षम किया है।

  2. निम्नलिखित पाठ को 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")
    
  3. उपरोक्त स्क्रिप्ट निष्पादित करें (राइट क्लिक> पावरशेल के साथ चलाएं), पासवर्ड के लिए एक सार्थक नाम प्रदान करें, और पासवर्ड टाइप करें। अब आप %USERPROFILE%/DPAPI/passwords/[PC NAME]/[PASSWORD IDENTIFIER.txt]

    में फ़ाइल की जांच करके यह सत्यापित कर सकते हैं कि पासवर्ड एन्क्रिप्ट किया गया है।
  4. अब आर के भीतर से निम्नलिखित कोड चलाएं (मेरे पास यह फ़ंक्शन एक आर स्क्रिप्ट में सहेजा गया है जिसे मैं प्रत्येक स्क्रिप्ट की शुरुआत में स्रोत करता हूं।

    getEncryptedPassword <- function(credential_label, credential_path) {
      # if path not supplied, use %USER_PROFILE%\DPAPI\passwords\computername\credential_label.txt as default
      if (missing(credential_path)) {
        credential_path <- paste(Sys.getenv("USERPROFILE"), '\\DPAPI\\passwords\\', Sys.info()["nodename"], '\\', credential_label, '.txt', sep="")
      }
      # construct command
      command <- paste('powershell -command "$PlainPassword = Get-Content ', credential_path, '; $SecurePassword = ConvertTo-SecureString $PlainPassword; $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecurePassword); $UnsecurePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR); echo $UnsecurePassword"', sep='')
      # execute powershell and return command
      return(system(command, intern=TRUE))
    }
    
  5. अब जब आपको R में पासवर्ड की आपूर्ति करने की आवश्यकता होती है, तो आप पासवर्ड के लिए हार्डकोडिंग/प्रॉम्प्ट करने के बजाय निम्न कमांड चला सकते हैं:

    getEncryptedPassword("[PASSWORD IDENTIFIER]")
    

    उदाहरण के लिए, ROracle कमांड चलाने के बजाय:

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

    आप इसके बजाय इसे चला सकते हैं (चरण 3 में मेरे द्वारा प्रदान किया गया पहचानकर्ता "MYUSER_MYDB" है:

    dbConnect(driver, "MYUSER", getEncryptedPassword("MYUSER_MYDB"), dbname="MYDB")
    
  6. आप जितने पासवर्ड की आवश्यकता है, उतने पासवर्ड के लिए चरण 3 को दोहरा सकते हैं, और बस चरण 5 में सही पहचानकर्ता के साथ उन्हें कॉल कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में PLSQL के साथ PDF फ़ाइलें बनाएँ

  2. फील्डए से मूल्य लें, डीबी फ़ंक्शन को भेजें, फील्डबी को मूल्य वापस करें

  3. मानों की सूची में, कई श्रेणियों के विरुद्ध मिलान की गई संख्याओं की सूची का अनुवाद करने के लिए SQL क्वेरी

  4. OS X Mavericks पर RODBC/ROracle संकुल की स्थापना

  5. अगर Oracle मौजूद नहीं है तो डालें