共用方式為


保護您的 SQL Server

SQL Server 是關係資料庫管理系統 (RDBMS),可儲存及管理應用程式、分析和報告的重要商務數據。 因為它通常包含機密資訊,例如客戶記錄、財務數據和智慧財產權,因此保護 SQL Server 對於保護貴組織免於數據外泄、未經授權的存取和合規性風險至關重要。

本文提供如何最好保護 SQL Server 的指引。

網路安全性

保護 SQL Server 的網路存取有助於防止未經授權的連線、減少遭受攻擊的風險,並確保只有受信任的來源可以連線到您的資料庫。

  • 使用防火牆和 NSG 限制輸入流量:藉由 設定資料庫引擎存取的 Windows 防火牆來限制 SQL Server 的網路存取。 針對 Azure 虛擬機器 (VM) 中的 SQL Server,請使用 Azure 防火牆網路安全組 (NSG) 來強制執行這些限制。

  • 加密 SQL Server 的連線:設定 SQL Server Database Engine 以使用憑證加密連線。 這可確保傳輸中的數據受到保護,免於竊聽和竄改。 如需詳細資訊,請參閱 加密 SQL Server Database Engine 的連線

  • 安全遠端管理:針對所有遠端連線使用加密通訊協定(例如 TLS 1.3)。 如需詳細資訊,請參閱 設定 TLS 1.3

  • 使用嚴格加密連線到 SQL Server:SQL Server 2022 引進了strict加密選項,這要求所有連線都必須使用加密。 這有助於確保傳輸中的所有數據都受到保護。 如需詳細資訊,請參閱 使用嚴格的加密連線到 SQL Server

身分識別管理

強式身分識別和驗證控制有助於確保只有授權的使用者和應用程式可以存取 SQL Server 資源。

  • 使用 Windows 驗證或Microsoft Entra 驗證:偏好 Windows 驗證或Microsoft Entra 驗證,而不是 SQL 驗證,以進行集中式身分識別管理和更輕鬆的帳戶生命週期管理。 如需詳細資訊,請參閱選擇驗證模式

  • 針對服務使用群組管理的服務帳戶 (gMSA):使用 gMSA 自動且安全地管理服務帳戶認證。 如需詳細資訊,請參閱 Group-Managed 服務帳戶概觀

  • 強制執行強密碼原則:如果您使用 SQL 驗證,則需要無法輕易猜測且不會用於其他帳戶的複雜密碼。 請定期更新密碼並強制執行 Active Directory 原則。 如需詳細資訊,請參閱 強密碼

  • 適當時使用自主資料庫用戶:針對需要資料庫層級驗證的應用程式考慮自主資料庫使用者,而不需要伺服器層級登入。 如需詳細資訊,請參閱 受限資料庫使用者

特權存取

限制和監視特殊許可權存取有助於防止未經授權的變更,並減少遭入侵帳戶的影響。

  • 授與所需的最低許可權:指派每個用戶或服務所需的最低許可權層級。 定期檢閱並調整許可權,以維持最低許可權。 如需詳細資訊,請參閱 開始使用資料庫引擎許可權

  • 分離資料庫管理員(DBA)與角色sysadmin避免賦予所有 DBA 全權許可。 盡可能使用 CONTROL SERVER 許可權,因為它尊重 DENY 許可權並允許更細微的控制。 請考慮限制虛擬機存取權、登入作系統的能力、修改錯誤和稽核記錄的能力,以及安裝應用程式和/或功能的能力等職責區隔。 如需詳細資訊,請參閱 許可權 (Database Engine)

  • 監視和稽核特殊許可權活動:啟用稽核以追蹤特殊許可權帳戶所做的變更,並定期檢閱可疑活動的記錄。 如需詳細資訊,請參閱 SQL Server 稽核 (資料庫引擎)

  • 實作角色區隔:將Active Directory使用者放在AD群組中、將AD群組對應至 SQL Server角色,並將應用程式所需的最低許可權授與 SQL Server角色。 如需詳細資訊,請參閱 開始使用資料庫引擎許可權

數據保護

保護待用和傳輸中的數據對於防止未經授權的洩漏或竄改至關重要。

  • 使用 Always Encrypted 加密敏感資料:使用 Always Encrypted 和具備安全區域的 Always Encrypted 來保護 SQL Server 中的敏感資料。 偏好隨機加密,以增強安全性。 如需詳細資訊,請參閱 Always Encrypted

  • 針對資料庫檔案使用透明數據加密 (TDE:啟用 TDE 來加密資料庫、備份和 tempdb 檔案,並在實體媒體遭到入侵時保護數據。 如需詳細資訊,請參閱透明資料加密 (TDE)

  • 使用動態數據遮罩來遮罩敏感數據(DDM):若無法加密,請使用 DDM 在查詢結果中模糊化敏感數據。 如需相關資訊,請參閱 Dynamic Data Masking

  • 授與欄位層級權限:將SELECTREFERENCESUPDATE權限僅授與授權使用者,以限制對敏感欄位的存取權。 如需詳細資訊,請參閱 GRANT 許可權

  • 使用 Row-Level 安全性 (RLS) 來限制資料存取:實作 RLS 以確保使用者只會看到與其相關的數據。 適用於用戶共用 SQL 帳戶的中間層應用程式使用 SESSION_CONTEXT。 如需詳細資訊,請參閱 Row-Level 安全性

  • 結合安全性功能以進行最大保護:使用 Row-Level 安全性與 Always Encrypted 或動態資料遮罩,以最大化組織的安全性狀態。 如需詳細資訊,請參閱 Row-Level 安全性最佳做法

記錄和威脅偵測

完整的記錄和監視有助於偵測威脅、調查事件,以及符合合規性需求。

  • 啟用和設定 SQL Server 稽核:稽核伺服器和資料庫層級敏感數據和組態的存取和變更。 請考慮稽核具有已套用安全性措施之敏感數據的數據表和欄。 定期檢閱稽核記錄,特別是對於包含無法執行完整安全性措施之敏感性信息的數據表。 如需詳細資訊,請參閱 SQL Server 稽核 (資料庫引擎)

  • 在 SQL Server 中使用總賬:啟用總賬來建立敏感數據變更的不可變記錄,以提供防竄改記錄。 如需詳細資訊,請參閱設定總帳資料庫

備份和復原

可靠的備份和復原程式可保護您的數據免於因為失敗、災害或攻擊而遺失。

安全性評定和威脅風險降低

定期評估 SQL Server 環境有助於識別弱點並改善安全性狀態。

  • 限制啟用的功能以減少受攻擊面:只啟用您環境所需的 SQL Server 功能。 如需詳細資訊,請參閱介面區設定

  • 執行弱點評估:使用SSMS中的SQL 弱點評估 來探索和補救潛在的資料庫弱點。 如需詳細資訊,請參閱 SQL 弱點評量

  • 分類和標記敏感數據:使用 SQL 數據探索和分類來識別和標記敏感數據,以取得更好的保護和合規性。 如需詳細資訊,請參閱 SQL 資料探索與分類

  • 檢閱並減輕常見的威脅:遵循輸入驗證、修補和訪問控制的建議做法,防範 SQL 插入式攻擊、側路攻擊、暴力密碼破解、密碼噴洒和勒索軟體。 如需詳細資訊,請參閱 SQL 插入 式攻擊和 勒索軟體攻擊

  • 實作深度防禦安全性:使用以不同安全性範圍為目標的多個安全性功能,針對各種威脅提供全面的保護。 如需詳細資訊,請參閱 SQL Server 安全性最佳做法