Sql-Server-2008

可以加密數據庫嗎?

  • September 23, 2013

我不是 DBA,但有人問我是否可以加密 sql server 中的數據,這樣管理員儘管可以訪問 SQL Server 將無法看到數據,但應用程序仍然可以查詢它並讀取數據。

我對加密的有限了解告訴我,如果應用程序加密數據,那麼 db 將無法查詢它。如果 db 加密數據,那麼 DBA 肯定可以讀取它。

那麼有沒有辦法防止 DBA 偷看數據但仍然能夠管理數據庫呢?

您將需要加密應用程序中的數據並將加密的值儲存在數據庫中。TDE 和儲存級加密等內容無法滿足您的要求。

我認為您指的是單元級加密,但使用此功能需要更改應用程序。TDE(透明數據庫加密)是另一種選擇,它會加密磁碟上的文件,但它們會在記憶體中解密,因此任何可以直接訪問機器並有足夠權限直接查看塊緩衝區記憶體的人都可以訪問數據。

另一種方法是簡單地使用db_backupoperator角色,以便 DBA 使用的帳戶可以備份數據庫,但無權查看數據。在這種情況下,您可能希望將sa密碼寫下來並鎖定在保險箱中,以防您真的需要它。

順便說一句,如果您擔心您的 DBA 竊取您的數據,那麼您的問題是組織性的,而不是技術性的。我自己在一個受監管的行業工作,DBA 和 SA 都經過仔細審查(例如年度背景調查),我們將數據儲存在 DB 中的 BLOB 中,應用程序擁有加密的密鑰(並且沒有人在兩台機器上都使用數據和帶鑰匙的機器)。但是,這種策略可能會走得太遠。在我目前的一個項目中,我需要使用 LDAP 進行身份驗證。有一些問題,但是沒有人被允許同時登錄 DB 框和 LDAP 框,因此診斷問題非常困難——這對於業務來說意味著昂貴。

引用自:https://dba.stackexchange.com/questions/2344