2012-08-27 39 views
1

我有一個MySql數據庫,多個客戶端應用程序(只查詢數據庫)和一個定期填充數據庫的Windows NT服務。 我正在尋找存儲數據庫證書的最佳方式,以便所有應用程序都可以訪問數據庫。 對於客戶端應用程序(由普通用戶運行),我將憑據存儲在Windows憑據管理器中,據我瞭解,只對特定用戶可見。在Windows本地網絡上存儲Windows(NT)服務使用的密碼

我的問題是: 我最好在哪裏存儲MySql證書,以便Windows服務可以訪問數據庫?

在此先感謝, 薩科

回答

1

LsaStorePrivateDataLsaRetrievePrivateData函數是存儲和檢索祕密的合理直接方法。以這種方式存儲的數據只能由具有管理權限的人員檢索。這不提供100%的保護,但是(假設沒有錯誤並且加密算法沒有被破壞),如果祕密必須由系統服務在沒有人工干預的情況下檢索,則保護在邏輯上是可能的。

LsaStorePrivateData沒有內置GUI。您將需要編寫一些使用此函數的代碼來保存MySql憑證。 (但是,此代碼可能位於與系統服務相同的可執行文件中,並可通過命令行選項進行訪問。)

+0

這似乎適用於我的服務應用程序。太糟糕了,我無法使用客戶端和服務應用程序的憑證存儲區。 – NicolasR

0

的服務作爲用戶也,爲什麼你不能使用它同樣的方法?這假定該服務作爲自己的用戶或其他安全帳戶運行。

+0

好吧,假設服務在本地系統帳戶下運行,並且此帳戶也具有憑證存儲,管理員如何訪問該商店輸入憑證? – NicolasR

+0

如果我通過管理員帳戶的「sc.exe config」爲服務分配證書,應該可以使用此管理員的Windows憑證存儲。所以,你的建議肯定是我應該考慮的一種方式。謝謝。 – NicolasR