[實作筆記] CPAU 加密仿登入

前情提要

登入 SQL Server 需要受到權限管控,
而在 Windows 中需要使用特定用戶身份登入時,
我們常常會選擇 runas 命令。

大概類似如下:

1
runas.exe /netnoly /user:MyCompany\Marsen "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe"

我會寫成一個 ps (PowerShell) File 來執行這件事。
但是會有一些問題。

問題

  1. 每次登入都輸入密碼好麻煩
  2. 密碼很長又複雜,Terminal 又看不出輸入是否正確,常常會打錯
  3. 密碼如果寫在 PowerShell 中會有風險

我希望點兩下就能以正確的身份開啟 SSMS 而且密碼不會被明碼存儲

CPAU

  1. 請先下載CPAU\

    • 我採用綠色安裝,如果有必要可以設為環境變數
  2. 準備好 PowerShell 檔,並命名為 dblogin.ps1

    1
    runas.exe /netnoly /user:MyCompany\Marsen "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe"
  3. 加密,以下的語法會產生以 MyCompany\Marsen 的身份登入執行 SSMS 的批次檔 run.bat

    1
    CPAU -u MyCompany\marsen -p *************** -ex "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe" -enc -file D:\run.bat
  4. 解密

    1
    CPAU -file D:\run.bat -dec

最後只要將步驟 4 的語法存成一個 bat 檔,就可以隨時點兩下執行了。

參考

(fin)