Sql-Server

從“sa”保護 Always Encrypted SQL Server

  • December 27, 2017

我目前正在研究 SQL Server Always Encrypted 功能。Column Encryption Setting=enabled如果他們所要做的就是在 SQL Server Management Studio 中添加登錄名的附加登錄參數,我該如何禁用對“sa”的列解密?

我在 Google 上閱讀文章。他們只說我們可以保護來自管理員的數據,但沒有範例如何。

列加密密鑰 (CEK) 用於加密數據並儲存在數據庫中。CEK 使用列主密鑰 (CMK) 保護。

CMK 儲存在 SQL Server 之外。有關密鑰的元數據儲存在 SQL Server 中。

如果您限制對 CMK 的訪問,您的數據庫管理員/系統管理員 (sa) 將無法解密。

你不能簡單地因為密鑰全部儲存在目錄中,而目錄不受限制sa

我沒有寫查詢,我只是用Google搜尋sys.column_encryption_key_values(我知道儲存了 sym 加密密鑰),然後找到了其他人做這項工作。

SELECT cek.name, cmk.key_path, cekv.encrypted_value, cekv.encryption_algorithm_name
FROM sys.column_encryption_key_values cekv, sys.column_encryption_keys cek, sys.column_master_key_definitions cmk
WHERE cek.column_encryption_key_id = cekv.column_encryption_key_id
  AND cmk.column_master_key_definition_id = cekv.column_master_key_definition_id;

如果有人獲得根,所有賭注都將通過對稱加密進行。

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