Oracle-11g-R2
管理powershell腳本中使用的登錄名/密碼的安全策略是什麼
我有幾個 Powershell 腳本需要將數據寫入 Oracle 數據庫。我不想硬編碼登錄憑據。
當連接到 SQL Server 時,我依賴於 Windows 身份驗證和 Active Directory,但這不是一個選項,因為 Oracle 數據庫位於單獨的網路 (Unix) 上。這些腳本將通過 SQL Server 代理在 SQL Server 上執行。
我希望提出一個安全的策略,並在更改密碼時將所涉及的工作降至最低。
您最好的選擇是使用ConvertTo-SecureString和ConcertFrom-SecureString在文件(或表)中創建密碼。您將需要使用“-Key”或“-SecureKey”參數以允許具有 SQL Server 代理的服務帳戶將密碼讀入您的腳本。
我在這個過程中遇到的最好的文章可以在這里和這裡找到。文章中感興趣的程式碼片段:
#Encrypting password on machine 1 $File = "\\Machine1\SharedPath\Password.txt" [Byte[]] $key = (1..16) $Password = "P@ssword1" | ConvertTo-SecureString -AsPlainText -Force $Password | ConvertFrom-SecureString -key $key | Out-File $File #Accessing the password on machine 2 $File = "\\Machine1\SharedPath\Password.txt" [Byte[]] $key = (1..16) Get-Content $File | ConvertTo-SecureString -Key $key
一般前提是您可以使用第一個過程將密碼保存到文件或表中。然後在您的 SQL 代理作業中以半安全方式讀取密碼。這不是最安全的,因為如果有人找到密鑰,他們顯然也可以讀取密碼。
同樣,最終您可能會將其作為純文字傳遞給目的地,除非它接受使用 PSCredential 對象。