SQL Server 2000數據庫安全妙招拆解
1.使用健壯安全的密碼策略
很多數據庫帳號的密碼過于簡單,這跟系統密碼過于簡單是一個道理。對于sa更應該注意,同時不要讓sa帳號的密碼寫于應用程序或者腳本中。健壯的密碼是安全的第一步!SQL Server2000安裝的時候,如果是使用混合模式,那么就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。同時養成定期修改密碼的好習慣。數據庫管理員應該定期查看是否有不符合密碼要求的帳號。
比如使用下面的SQL語句:
Use masterSelect name,Password from syslogins where password is null
要分配sa密碼,請按下列步驟操作: 1) 展開服務器組,然后展開服務器。 2) 展開安全性,然后點擊登錄。 3) 在細節窗格中,右鍵點擊SA,然后點擊屬性。 4) 在密碼方框中,輸入新的密碼。
2.使用安全的帳號策略和Windows認證模式
由于SQL Server不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在數據庫應用中使用sa帳號,只有當沒有其它方法登錄到 SQL Server 實例(例如,當其它系統管理員不可用或忘記了密碼)時才使用 sa。建議數據庫管理員新建立個擁有與sa一樣權限的超級用戶來管理數據庫。安全的帳號策略還包括不要讓管理員權限的帳號泛濫。
SQL Server的認證模式有Windows身份認證和混合身份認證兩種。在任何可能的時候,您都應該對指向SQL Server的連接要求Windows身份驗證模式。
Windows認證模式比混合模式更優越,原因在以下:
1) 它通過限制對Microsoft Windows用戶和域用戶帳戶的連接,保護SQL Server免受大部分Internet工具的侵害。
2) 服務器將從Windows安全增強機制中獲益,例如更強的身份驗證協議以及強制的密碼復雜性和過期時間 。
3) 使用Windows認證,不需要將密碼存放在連接字符串中。存儲密碼是使用標準SQL Server登錄的應用程序的主要漏洞之一。
4) Windows認證意味著你只需要將密碼存放在一個地方。
要在SQL Server的Enterprise Manager安裝Windows身份驗證模式,請按下列步驟操作: 1)展開服務器組。 2)右鍵點擊服務器,然后點擊屬性。 3)在安全性選項卡的身份驗證中,點擊僅限Windows。
3.在防火墻上禁用SQL Server端口
SQL Server的默認安裝將監視TCP端口1433以及UDP端口1434。配置您的防火墻來過濾掉到達這些端口的數據包。而且,還應該在防火墻上阻止與指定實例相關聯的其他端口。
4.審核指向SQL Server的連接
SQL Server可以記錄事件信息,用于系統管理員的審查。至少您應該記錄失敗的SQL Server連接嘗試,并定期地查看這個日志。在可能的情況下,不要將這些日志和數據文件保存在同一個硬盤上。
要在SQL Server的Enterprise Manager中審核失敗連接,請按下列步驟操作: 1) 展開服務器組。 2) 右鍵點擊服務器,然后點擊屬性。 3) 在安全性選項卡的審核等級中,點擊失敗。 4) 要使這個設置生效,您必須停止并重新啟動服務器。
5.管理擴展存儲過程
對存儲過程進行大手術,并且對帳號調用擴展存儲過程的權限要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQL Server的這么多系統存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升權限或進行破壞。如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句: use master sp_dropextendedproc 'xp_cmdshell'
xp_cmdshell是進入操作系統的最佳捷徑,是數據庫留給操作系統的一個大后門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。 sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll
如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特征不能使用),這些過程包括如下: Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetPropertySp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,如下: Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread Xp_regremovemultistring Xp_regwrite
還有一些其他的擴展存儲過程,你也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對數據庫或應用程序的傷害。
6.使用視圖和存儲程序以分配給用戶訪問數據的權利
使用視圖和存儲程序以分配給用戶訪問數據的權利,而不是讓用戶編寫一些直接訪問表格的特別查詢語句。通過這種方式,你無需在表格中將訪問權利分配給用戶。視圖和存儲程序也可以限制查看的數據。例如,如果你的雇員表格包含一些秘密的工資信息,你可以建立一個省略了工資欄的視圖。
7.使用最安全的文件系統
NTFS是最適合安裝SQL Server的文件系統。它比FAT文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄ACL以及文件加密(EFS)。在安裝過程中,如果偵測到 NTFS,SQL Server將在注冊表鍵和文件上設置合適的ACL。不應該去更改這些權限。
通過EFS,數據庫文件將在運行SQL Server的帳戶身份下進行加密。只有這個帳戶才能解密這些文件。如果您需要更改運行SQL Server的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進行加密。
8.安裝升級包
為了提高服務器安全性,最有效的一個方法就是升級到SQL Server 2000 Service Pack 3a (SP3a)。另外,您還應該安裝所有已發布的安全更新。
9.使用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 的免費下載。
10.其他安全策略
另外,在安裝SQL Server時,還有一些技巧值得注意。
使用TCP/IP作為SQL Server的網絡庫。這是微軟推薦使用的庫,是經受考驗的。如果服務器將與網絡連接,使用非標準端口會被一些別有用心的人破壞。
使用一個低級別的帳號來運行SQL Server,而不是一個管理帳號。這對系統崩潰的時候起著保護作用。
不要允許未獲得安全許可的客人訪問任何包括安全數據的數據庫。
將數據庫保護于一個“被鎖的房間”。記住,很多騷擾都是來自于內部的人。
關鍵字:SQL Server 、TCP/IP、數據庫
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解