保护SQL Server数据库的十大绝招
生活随笔
收集整理的這篇文章主要介紹了
保护SQL Server数据库的十大绝招
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.?安裝最新的服務包??
為了提高服務器安全性,最有效的一個方法就是升級到SQL?Server?2000?Service?Pack?3a?(SP3a)。另外,您還應該安裝所有已發布的安全更新。?
2.?使用Microsoft基線安全性分析器(MBSA)來評估服務器的安全性?
MBSA?是一個掃描多種Microsoft產品的不安全配置的工具,包括SQL?Server和Microsoft?SQL?Server?2000?Desktop?Engine(MSDE?2000)。它可以在本地運行,也可以通過網絡運行。該工具針對下面問題對SQL?Server安裝進行檢測:? ??
1)?過多的sysadmin固定服務器角色成員。? ??
2)?授予sysadmin以外的其他角色創建CmdExec作業的權利。? ??
3)?空的或簡單的密碼。? ??
4)?脆弱的身份驗證模式。? ??
5)?授予管理員組過多的權利。? ??
6)?SQL?Server數據目錄中不正確的訪問控制表(ACL)。? ??
7)?安裝文件中使用純文本的sa密碼。? ??
8)?授予guest帳戶過多的權利。? ??
9)?在同時是域控制器的系統中運行SQL?Server。? ??
10)?所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪問。? ??
11)?SQL?Server?服務帳戶的不正確配置。? ??
12)?沒有安裝必要的服務包和安全更新。? ??
Microsoft?提供?MBSA?的免費下載。? ?
3.?使用Windows身份驗證模式? ??
在任何可能的時候,您都應該對指向SQL?Server的連接要求Windows身份驗證模式。它通過限制對Microsoft?Windows用戶和域用戶帳戶的連接,保護SQL?Server免受大部分Internet工具的侵害,而且,您的服務器也將從Windows安全增強機制中獲益,例如更強的身份驗證協議以及強制的密碼復雜性和過期時間。另外,憑證委派(在多臺服務器間橋接憑證的能力)也只能在Windows身份驗證模式中使用。在客戶端,Windows身份驗證模式不再需要存儲密碼。存儲密碼是使用標準SQL?Server登錄的應用程序的主要漏洞之一。要在SQL?Server的Enterprise?Manager安裝Windows身份驗證模式,請按下列步驟操作:? ??
1)展開服務器組。? ??
2)右鍵點擊服務器,然后點擊屬性。? ??
3)在安全性選項卡的身份驗證中,點擊僅限Windows。??
4.?隔離您的服務器,并定期備份? ???
物理和邏輯上的隔離組成了SQL?Server安全性的基礎。駐留數據庫的機器應該處于一個從物理形式上受到保護的地方,最好是一個上鎖的機房,配備有洪水檢測以及火災檢測及消防系統。數據庫應該安裝在企業內部網的安全區域中,不要直接連接到Internet。定期備份所有數據,并將副本保存在安全的站點外地點。?
5.?分配一個強健的sa密碼? ??
sa帳戶應該總擁有一個強健的密碼,即使在配置為要求?Windows?身份驗證的服務器上也該如此。這將保證在以后服務器被重新配置為混合模式身份驗證時,不會出現空白或脆弱的sa。? ??
要分配sa密碼,請按下列步驟操作:? ??
1)?展開服務器組,然后展開服務器。? ??
2)?展開安全性,然后點擊登錄。? ??
3)?在細節窗格中,右鍵點擊SA,然后點擊屬性。? ??
4)?在密碼方框中,輸入新的密碼。?
6.?限制?SQL?Server服務的權限? ??
SQL?Server?2000和SQL?Server?Agent是作為Windows服務運行的。每個服務必須與一個Windows帳戶相關聯,并從這個帳戶中衍生出安全性上下文。SQL?Server允許sa登錄的用戶(有時也包括其他用戶)來訪問操作系統特性。這些操作系統調用是由擁有服務器進程的帳戶的安全性上下文來創建的。如果服務器被攻破了,那么這些操作系統調用可能被利用來向其他資源進行攻擊,只要所擁有的過程(SQL?Server服務帳戶)可以對其進行訪問。因此,為SQL?Server服務僅授予必要的權限是十分重要的。? ??
我們推薦您采用下列設置:? ??
1)?SQL?Server?Engine/MSSQLServer? ??
如果擁有指定實例,那么它們應該被命名為MSSQL$InstanceName。作為具有一般用戶權限的Windows域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。? ??
2)?SQL?Server?Agent?Service/SQLServerAgent? ??
如果您的環境中不需要,請禁用該服務;否則請作為具有一般用戶權限的Windows域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。? ??
重點:?如果下列條件之一成立,那么SQL?Server?Agent將需要本地Windows管理員權限:? ??
SQL?Server?Agent使用標準的SQL?Server身份驗證連接到SQL?Server(不推薦);? ??
SQL?Server?Agent使用多服務器管理主服務器(MSX)帳戶,而該帳戶使用標準SQL?Server身份驗證進行連接;? ??
SQL?Server?Agent運行非sysadmin固定服務器角色成員所擁有的Microsoft?ActiveX腳本或?CmdExec作業。? ??
如果您需要更改與SQL?Server服務相關聯的帳戶,請使用?SQL?Server?Enterprise?Manager。Enterprise?Manager將為SQL?Server所使用的文件和注冊表鍵設置合適的權限。不要使用Microsoft管理控制臺的“服務”(在控制面板中)來更改這些帳戶,因為這樣需要手動地調制大量的注冊表鍵和NTFS文件系統權限以及Micorsoft?Windows用戶權限。? ??
帳戶信息的更改將在下一次服務啟動時生效。如果您需要更改與SQL?Server以及SQL?Server?Agent相關聯的帳戶,那么您必須使用Enterprise?Manager分別對兩個服務進行更改。?
7.?在防火墻上禁用SQL?Server端口? ??
SQL?Server的默認安裝將監視TCP端口1433以及UDP端口1434。配置您的防火墻來過濾掉到達這些端口的數據包。而且,還應該在防火墻上阻止與指定實例相關聯的其他端口。?
8.?使用最安全的文件系統? ??
NTFS是最適合安裝SQL?Server的文件系統。它比FAT文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄ACL以及文件加密(EFS)。在安裝過程中,如果偵測到?NTFS,SQL?Server將在注冊表鍵和文件上設置合適的ACL。不應該去更改這些權限。? ??
通過EFS,數據庫文件將在運行SQL?Server的帳戶身份下進行加密。只有這個帳戶才能解密這些文件。如果您需要更改運行SQL?Server的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進行加密。? ?
??
9.?刪除或保護舊的安裝文件? ??
SQL?Server安裝文件可能包含由純文本或簡單加密的憑證和其他在安裝過程中記錄的敏感配置信息。這些日志文件的保存位置取決于所安裝的SQL?Server版本。在SQL?Server?2000中,下列文件可能受到影響:默認安裝時:\Program?Files\Microsoft?SQL?Server\MSSQL\Install文件夾中,以及指定實例的:\Program?Files\Microsoft?SQL?Server\?MSSQL$\Install文件夾中的sqlstp.log,?sqlsp.log和setup.iss。? ??
如果當前的系統是從SQL?Server?7.0安裝升級而來的,那么還應該檢查下列文件:%Windir%?文件夾中的setup.iss以及Windows?Temp文件夾中的sqlsp.log。? ??
Microsoft發布了一個免費的實用工具Killpwd,它將從您的系統中找到并刪除這些密碼。??
??
10.?審核指向SQL?Server的連接? ??
SQL?Server可以記錄事件信息,用于系統管理員的審查。至少您應該記錄失敗的SQL?Server連接嘗試,并定期地查看這個日志。在可能的情況下,不要將這些日志和數據文件保存在同一個硬盤上。? ??
要在SQL?Server的Enterprise?Manager中審核失敗連接,請按下列步驟操作:? ??
1)?展開服務器組。? ??
2)?右鍵點擊服務器,然后點擊屬性。? ??
3)?在安全性選項卡的審核等級中,點擊失敗。? ??
4)?要使這個設置生效,您必須停止并重新啟動服務器。
為了提高服務器安全性,最有效的一個方法就是升級到SQL?Server?2000?Service?Pack?3a?(SP3a)。另外,您還應該安裝所有已發布的安全更新。?
2.?使用Microsoft基線安全性分析器(MBSA)來評估服務器的安全性?
MBSA?是一個掃描多種Microsoft產品的不安全配置的工具,包括SQL?Server和Microsoft?SQL?Server?2000?Desktop?Engine(MSDE?2000)。它可以在本地運行,也可以通過網絡運行。該工具針對下面問題對SQL?Server安裝進行檢測:? ??
1)?過多的sysadmin固定服務器角色成員。? ??
2)?授予sysadmin以外的其他角色創建CmdExec作業的權利。? ??
3)?空的或簡單的密碼。? ??
4)?脆弱的身份驗證模式。? ??
5)?授予管理員組過多的權利。? ??
6)?SQL?Server數據目錄中不正確的訪問控制表(ACL)。? ??
7)?安裝文件中使用純文本的sa密碼。? ??
8)?授予guest帳戶過多的權利。? ??
9)?在同時是域控制器的系統中運行SQL?Server。? ??
10)?所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪問。? ??
11)?SQL?Server?服務帳戶的不正確配置。? ??
12)?沒有安裝必要的服務包和安全更新。? ??
Microsoft?提供?MBSA?的免費下載。? ?
3.?使用Windows身份驗證模式? ??
在任何可能的時候,您都應該對指向SQL?Server的連接要求Windows身份驗證模式。它通過限制對Microsoft?Windows用戶和域用戶帳戶的連接,保護SQL?Server免受大部分Internet工具的侵害,而且,您的服務器也將從Windows安全增強機制中獲益,例如更強的身份驗證協議以及強制的密碼復雜性和過期時間。另外,憑證委派(在多臺服務器間橋接憑證的能力)也只能在Windows身份驗證模式中使用。在客戶端,Windows身份驗證模式不再需要存儲密碼。存儲密碼是使用標準SQL?Server登錄的應用程序的主要漏洞之一。要在SQL?Server的Enterprise?Manager安裝Windows身份驗證模式,請按下列步驟操作:? ??
1)展開服務器組。? ??
2)右鍵點擊服務器,然后點擊屬性。? ??
3)在安全性選項卡的身份驗證中,點擊僅限Windows。??
4.?隔離您的服務器,并定期備份? ???
物理和邏輯上的隔離組成了SQL?Server安全性的基礎。駐留數據庫的機器應該處于一個從物理形式上受到保護的地方,最好是一個上鎖的機房,配備有洪水檢測以及火災檢測及消防系統。數據庫應該安裝在企業內部網的安全區域中,不要直接連接到Internet。定期備份所有數據,并將副本保存在安全的站點外地點。?
5.?分配一個強健的sa密碼? ??
sa帳戶應該總擁有一個強健的密碼,即使在配置為要求?Windows?身份驗證的服務器上也該如此。這將保證在以后服務器被重新配置為混合模式身份驗證時,不會出現空白或脆弱的sa。? ??
要分配sa密碼,請按下列步驟操作:? ??
1)?展開服務器組,然后展開服務器。? ??
2)?展開安全性,然后點擊登錄。? ??
3)?在細節窗格中,右鍵點擊SA,然后點擊屬性。? ??
4)?在密碼方框中,輸入新的密碼。?
6.?限制?SQL?Server服務的權限? ??
SQL?Server?2000和SQL?Server?Agent是作為Windows服務運行的。每個服務必須與一個Windows帳戶相關聯,并從這個帳戶中衍生出安全性上下文。SQL?Server允許sa登錄的用戶(有時也包括其他用戶)來訪問操作系統特性。這些操作系統調用是由擁有服務器進程的帳戶的安全性上下文來創建的。如果服務器被攻破了,那么這些操作系統調用可能被利用來向其他資源進行攻擊,只要所擁有的過程(SQL?Server服務帳戶)可以對其進行訪問。因此,為SQL?Server服務僅授予必要的權限是十分重要的。? ??
我們推薦您采用下列設置:? ??
1)?SQL?Server?Engine/MSSQLServer? ??
如果擁有指定實例,那么它們應該被命名為MSSQL$InstanceName。作為具有一般用戶權限的Windows域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。? ??
2)?SQL?Server?Agent?Service/SQLServerAgent? ??
如果您的環境中不需要,請禁用該服務;否則請作為具有一般用戶權限的Windows域用戶帳戶運行。不要作為本地系統、本地管理員或域管理員帳戶來運行。? ??
重點:?如果下列條件之一成立,那么SQL?Server?Agent將需要本地Windows管理員權限:? ??
SQL?Server?Agent使用標準的SQL?Server身份驗證連接到SQL?Server(不推薦);? ??
SQL?Server?Agent使用多服務器管理主服務器(MSX)帳戶,而該帳戶使用標準SQL?Server身份驗證進行連接;? ??
SQL?Server?Agent運行非sysadmin固定服務器角色成員所擁有的Microsoft?ActiveX腳本或?CmdExec作業。? ??
如果您需要更改與SQL?Server服務相關聯的帳戶,請使用?SQL?Server?Enterprise?Manager。Enterprise?Manager將為SQL?Server所使用的文件和注冊表鍵設置合適的權限。不要使用Microsoft管理控制臺的“服務”(在控制面板中)來更改這些帳戶,因為這樣需要手動地調制大量的注冊表鍵和NTFS文件系統權限以及Micorsoft?Windows用戶權限。? ??
帳戶信息的更改將在下一次服務啟動時生效。如果您需要更改與SQL?Server以及SQL?Server?Agent相關聯的帳戶,那么您必須使用Enterprise?Manager分別對兩個服務進行更改。?
7.?在防火墻上禁用SQL?Server端口? ??
SQL?Server的默認安裝將監視TCP端口1433以及UDP端口1434。配置您的防火墻來過濾掉到達這些端口的數據包。而且,還應該在防火墻上阻止與指定實例相關聯的其他端口。?
8.?使用最安全的文件系統? ??
NTFS是最適合安裝SQL?Server的文件系統。它比FAT文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄ACL以及文件加密(EFS)。在安裝過程中,如果偵測到?NTFS,SQL?Server將在注冊表鍵和文件上設置合適的ACL。不應該去更改這些權限。? ??
通過EFS,數據庫文件將在運行SQL?Server的帳戶身份下進行加密。只有這個帳戶才能解密這些文件。如果您需要更改運行SQL?Server的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進行加密。? ?
??
9.?刪除或保護舊的安裝文件? ??
SQL?Server安裝文件可能包含由純文本或簡單加密的憑證和其他在安裝過程中記錄的敏感配置信息。這些日志文件的保存位置取決于所安裝的SQL?Server版本。在SQL?Server?2000中,下列文件可能受到影響:默認安裝時:\Program?Files\Microsoft?SQL?Server\MSSQL\Install文件夾中,以及指定實例的:\Program?Files\Microsoft?SQL?Server\?MSSQL$\Install文件夾中的sqlstp.log,?sqlsp.log和setup.iss。? ??
如果當前的系統是從SQL?Server?7.0安裝升級而來的,那么還應該檢查下列文件:%Windir%?文件夾中的setup.iss以及Windows?Temp文件夾中的sqlsp.log。? ??
Microsoft發布了一個免費的實用工具Killpwd,它將從您的系統中找到并刪除這些密碼。??
??
10.?審核指向SQL?Server的連接? ??
SQL?Server可以記錄事件信息,用于系統管理員的審查。至少您應該記錄失敗的SQL?Server連接嘗試,并定期地查看這個日志。在可能的情況下,不要將這些日志和數據文件保存在同一個硬盤上。? ??
要在SQL?Server的Enterprise?Manager中審核失敗連接,請按下列步驟操作:? ??
1)?展開服務器組。? ??
2)?右鍵點擊服務器,然后點擊屬性。? ??
3)?在安全性選項卡的審核等級中,點擊失敗。? ??
4)?要使這個設置生效,您必須停止并重新啟動服務器。
總結
以上是生活随笔為你收集整理的保护SQL Server数据库的十大绝招的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jdbc连接各种数据库方式列表
- 下一篇: C#模拟MSN窗体抖动[原创]