[研究]Microsoft SQL Server 數據資料加密、遮罩技術比較
2024-06-06
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
********************************************************************************
Microsoft SQL Server 提供數據加密技術有哪些 ? 哪一版開始支援 ? 用表格比較 ?
ChatGPT
以下是 Microsoft SQL Server 提供的主要數據加密技術及其支援版本的比較:
加密技術 | 描述 | 優點 | 缺點 | 適用場景 | 支援版本 |
Cell-level Encryption 或 Column-Level Encryption (CLE) (單元級加密) (儲存格加密) |
對單個數據列或數據單元進行加密。 | 細粒度控制,僅加密敏感數據,降低性能開銷。 | 需要修改應用程序代碼來處理加密和解密邏輯。 | 保護特定的敏感數據,如信用卡號、社會保障號。 | SQL Server 2005 及以上版本 |
Transparent Data Encryption (TDE) (透明資料加密) |
對整個數據庫進行加密,包括備份文件。加密和解密對用戶透明。 | 簡單易用,無需修改應用程序代碼。 | 性能開銷較大,僅對靜態數據進行加密,無法保護正在處理的數據。 | 保護數據庫文件和備份文件免受未經授權訪問。 | SQL Server 2008 及以上版本 |
Always Encrypted (始終加密) |
保護數據庫中的敏感數據,使其對數據庫管理員和高權限用戶也不可見。 | 在應用程序層進行加密和解密,數據庫管理員無法看到明文數據,強安全性。 | 需要應用程序修改,僅支援某些數據類型和操作。 伺服器端操作無法運作。包括(但不限於):UPDATE、BULK INSERT(T-SQL)、SELECT INTO、INSERT..SELECT |
高安全性要求的應用場景,如醫療、金融數據。 | SQL Server 2016 及以上版本 |
Dynamic Data Masking (DDM) (動態資料遮罩) |
掩蓋敏感數據以防止未經授權的數據讀取。 | 簡單易用,無需修改數據或應用程序代碼。 | 僅掩蓋數據展示,不進行數據加密,對有權訪問的用戶無效。 | 掩蓋敏感數據展示,防止未經授權的數據讀取。 | SQL Server 2016 及以上版本 |
Backup Encryption (備份加密) |
對數據庫備份進行加密,以保護備份文件。 | 簡單易用,保護備份文件,減少數據洩露風險。 | 僅對備份文件進行保護,無法保護活動數據。 | 保護數據庫備份文件免受未經授權訪問。 | SQL Server 2014 及以上版本 |
BitLocker ( BitLocker磁碟機加密) |
使用 Windows 的 BitLocker 對整個磁盤加密,包括 SQL Server 數據文件。 | 操作系統級別的加密,保護整個磁盤上的數據。 | 需要操作系統支持,對 SQL Server 性能可能有影響。 | 保護整個磁盤數據,適用於高度敏感的數據存儲。 | 支援 Windows Server 版本 |
- UPDATE:db_datawriter 角色允許對表格進行 INSERT、UPDATE、DELETE 操作,因此這些帳號可以執行 UPDATE 操作。
- SELECT INTO:SELECT INTO 會將查詢結果插入到一個新的表格,這需要 CREATE TABLE 權限。單純的 db_datareader 和 db_datawriter 角色不包括 CREATE TABLE 權限,因此無法直接使用 SELECT INTO。
- BULK INSERT:BULK INSERT 操作需要 BULK ADMIN 伺服器級別權限,db_datareader 和 db_datawriter 角色無法滿足此需求。如果需要執行 BULK INSERT,必須顯式分配 BULK ADMIN 角色或相應權限。
- INSERT..SELECT:INSERT..SELECT 允許從一個表格或查詢結果插入資料到另一個已存在的表格。由於 db_datawriter 角色允許執行 INSERT 操作,因此可以使用 INSERT..SELECT。
相關
加密資料行 (Encrypt a Column of Data)
https://learn.microsoft.com/zh-tw/sql/relational-databases/security/encryption/encrypt-a-column-of-data?view=sql-server-ver16
Encrypt a Column of Data
https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/encrypt-a-column-of-data?view=sql-server-ver16
column level encryption (CLE,欄位層級加密)
https://learn.microsoft.com/en-us/answers/questions/1320534/column-level-encryption
使用 [Always Encrypted 精靈] 設定資料行加密
https://learn.microsoft.com/zh-tw/sql/relational-databases/security/encryption/always-encrypted-wizard?view=sql-server-ver16
[研究]SQL Server 動態資料遮罩 (Dynamic Data Masking, DDM) 試用
https://shaurong.blogspot.com/2024/11/sql-server-dynamic-data-masking-ddm.html
[研究]Microsoft SQL Server 數據加密技術比較
https://shaurong.blogspot.com/2024/06/microsoft-sql-server.html
[研究]SQL Server 角色權限、可執行 SQL 指令、可檢視動態資料遮罩 (Dynamic Data Masking, DDM)比較
https://www.blogger.com/blog/post/edit/3479310643037793626/5394507395545162744
沒有留言:
張貼留言