只適用於SQL Server - 僅限 Windows。
安全性對於每一個產品和每一項業務都很重要。 只要遵循簡單的最佳做法,就可以避免許多安全性漏洞。 本文描述一些您在安裝 SQL Server 之前和安裝 SQL Server 之後應該考量的安全性最佳做法。 特定功能的參考文章皆會涵蓋這些功能的安全性指南。
安裝 SQL Server 之前
設定伺服器環境時,請遵循這些最佳做法:
增強實體安全性
實體和邏輯隔離,構成 SQL Server 安全性的基礎。 若要加強 SQL Server 安裝的實體安全性,請執行下列工作:
將伺服器放在只有獲得授權的人員能夠存取的地點。
將主控資料庫的電腦放在實體保護位置中,最好是有上鎖的電腦機房,裡面有水災偵測和火災偵測或控制系統的監視功能。
在公司內部網路的安全區域中安裝資料庫,且不會將您的 SQL Server 實例直接連線到因特網。
定期備份所有資料,並在遠端位置保護備份安全。
使用防火牆
防火牆對於保護 SQL Server 安裝的安全非常重要。 如果您遵循下列指導方針,防火牆最有效:
將防火牆放在伺服器和網際網路之間。 啟用您的防火牆。 如果防火牆已關閉,請將它開啟。 如果您的防火牆已開啟,請勿將其關閉。
將網路分割成防火牆所隔開的安全區域。 封鎖所有傳輸,然後選擇性地只准許必要的傳輸。
在多層環境中,請使用多個防火牆來建立篩選的子網路。
當您在 Windows 網域內安裝伺服器時,請設定內部防火牆以允許 Windows 驗證。
如果應用程式使用分散式交易,您可能必須設定防火牆,好讓 Microsoft 分散式交易協調器 (MS DTC) 傳輸可以在個別 MS DTC 執行個體之間流動。 您也必須設定防火牆,以允許流量在 MS DTC 和資源管理員之間流動,例如 SQL Server。
如需預設 Windows 防火牆設定的詳細資訊以及影響資料庫引擎、Analysis Services、Reporting Services 和 Integration Services 之 TCP 連接埠的描述,請參閱設定 Windows 防火牆以允許 SQL Server 存取。
隔離服務
隔離服務減少一個遭到破壞的服務被用來破壤其他服務的風險。 若要隔離服務,請考慮下列方針:
- 在個別 Windows 帳戶下執行個別的 SQL Server 服務。 請盡可能針對每一個 SQL Server 服務使用低權限的個別 Windows 或本機使用者帳戶。 如需詳細資訊,請參閱設定 Windows 服務帳戶與權限。
設定安全的文件系統
使用正確的檔案系統會增加安全性。 如果是 SQL Server 安裝,您應該執行下列工作:
使用 NT 檔案系統 (NTFS) 或彈性檔案系統 (ReFS)。 NTFS 和 ReFS 是 SQL Server 安裝的建議文件系統,因為它比 FAT32 文件系統更穩定且可復原。 NTFS 或 ReFS 也會啟用安全性選項,例如檔案和目錄存取控制清單 (ACL)。 NTFS 也支援加密檔案系統 (EFS) - 檔案加密。 在安裝期間,SQL Server 會在偵測到NTFS時,在登錄機碼和檔案上設定適當的 ACL。 不應變更這些許可權。 未來的 SQL Server 版本可能不支援在含有 FAT 檔案系統的電腦上安裝。
注意
如果您使用 EFS,資料庫檔案會以執行 SQL Server 的帳戶身分識別進行加密。 只有此帳戶能夠解密檔案。 如果您必須變更執行 SQL Server 的帳戶,您必須先在舊的帳戶下解密檔案,然後在新的服務帳戶下重新加密檔案。
警告
透過EFS使用檔案加密可能會導致I/O效能變慢,因為加密會導致異步 I/O 變成同步。 請參閱非同步磁碟 I/O 在 Windows 上顯示為同步。 相反地,您可以考慮使用 透明數據加密(TDE)、 Always Encrypted 和數據行層級加密 密碼編譯函式等 SQL Server 加密技術。
停用 NetBIOS 和伺服器訊息區塊
周邊網路中的伺服器應該停用所有非必要的通訊協定,包括 NetBIOS 和伺服器訊息區塊 (SMB) 在內。
NetBIOS 使用下列通訊埠:
- UDP/137 (NetBIOS 名稱服務)
- UDP/138 (NetBIOS 資料包服務)
- TCP/139 (NetBIOS 工作階段服務)
SMB 使用下列通訊埠:
- TCP/139
- TCP/445
網頁伺服器和域名系統 (DNS) 伺服器不需要 NetBIOS 或 SMB。 在這些伺服器上,請停用這兩種通訊協定以減少使用者列舉的威脅。
在網域控制站上安裝 SQL Server
基於安全性理由,不建議您在網域控制站上安裝 SQL Server。 SQL Server 安裝程式將不會封鎖當做網域控制站之電腦上的安裝,但適用以下限制:
您無法以本機服務帳戶在網域控制站上執行 SQL Server 服務。
將 SQL Server 安裝到電腦之後,就無法將該電腦從網域成員變更為網域控制站。 在您將主機電腦變更為網域控制站之前,必須先解除安裝 SQL Server。
當 SQL Server 安裝到電腦上以後,您無法將電腦從網域控制站變成網域成員。 在您將主機電腦變更為網域成員之前,必須先解除安裝 SQL Server。
若叢集節點為網域控制站,則不支援 SQL Server 容錯移轉叢集執行個體。
SQL Server 安裝程式無法在唯讀網域控制站上建立安全性群組或佈建 SQL Server 服務帳戶。 在此案例中,安裝程式將會失敗。
SQL Server 安裝期間或之後
安裝之後,您可以遵照關於帳戶和驗證模式的這些最佳做法,來加強 SQL Server 安裝的安全性:
服務帳戶
使用可能的最低權限來執行 SQL Server 服務。
將 SQL Server 服務與低權限的 Windows 本機使用者帳戶或網域使用者帳戶產生關聯。
如需詳細資訊,請參閱設定 Windows 服務帳戶與權限。
驗證模式
需要 Windows 驗證才能連線至 SQL Server。
使用 Kerberos 驗證。 如需詳細資訊,請參閱 註冊 Kerberos 連線的服務主體名稱。
增強式密碼
- sa 帳戶一律指派增強式密碼。
- 一律啟用檢查密碼強度和逾期的密碼原則。
- 對所有 SQL Server 登入一律使用增強式密碼。
重要
在 SQL Server Express 設定期間,會為 BUILTIN\Users
群組新增登入的賬戶。 這可讓電腦上所有經過驗證的使用者以 public 角色成員的身分存取 SQL Server Express 執行個體。 您可以安全地移除登入帳戶 BUILTIN\Users
,以限制 Database Engine 存取對象為擁有個人登入的電腦使用者,或具有登入之其他 Windows 使用者群組的成員。