IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據(jù)庫MSSQL → SQL Server 2000的安全配置流程與基礎

SQL Server 2000的安全配置流程與基礎

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

此文章主要向大家介紹的是SQL Server 2000的安全配置流程,我們大家都知道數(shù)據(jù)庫對于金融,電子商務以及 ERP 系統(tǒng)的來說是它們的基礎,一般都會保存著重要的商業(yè)伙伴與客戶的信息。大多數(shù)企業(yè)、組織以及政府部門的電子數(shù)據(jù)都保存在各種數(shù)據(jù)庫中。

他們用這些數(shù)據(jù)庫保存一些個人資料,比如員工薪水、個人資料等等。

數(shù)據(jù)庫服務器還掌握著敏感的金融數(shù)據(jù)。包括交易記錄、商業(yè)事務和帳號數(shù)據(jù),戰(zhàn)略上的或者專業(yè)的信息,比如專利和工程數(shù)據(jù),甚至市場計劃等等應該保護起來防止競爭者和其他非法者獲取的資料。數(shù)據(jù)完整性和合法存取會受到很多方面的安全威脅,包括密碼策略、系統(tǒng)后門、數(shù)據(jù)庫操作以及本身的安全方案。但是數(shù)據(jù)庫通常沒有象操作系統(tǒng)和網(wǎng)絡這樣在安全性上受到重視。

微軟的SQL Server是一種廣泛使用的數(shù)據(jù)庫,很多電子商務網(wǎng)站、企業(yè)內部信息化平臺等都是基于SQL Server上的,但是數(shù)據(jù)庫的安全性還沒有被人們更系統(tǒng)的安全性等同起來,多數(shù)管理員認為只要把網(wǎng)絡和操作系統(tǒng)的安全搞好了,那么所有的應用程序也就安全了。

大多數(shù)系統(tǒng)管理員對數(shù)據(jù)庫不熟悉而數(shù)據(jù)庫管理員有對安全問題關心太少,而且一些安全公司也忽略數(shù)據(jù)庫安全,這就使數(shù)據(jù)庫的安全問題更加嚴峻了。數(shù)據(jù)庫系統(tǒng)中存在的安全漏洞和不當?shù)呐渲猛ǔ斐蓢乐氐暮蠊?,而且都難以發(fā)現(xiàn)。

數(shù)據(jù)庫應用程序通常同操作系統(tǒng)的最高管理員密切相關。廣泛SQL Server數(shù)據(jù)庫又是屬于"端口"型的數(shù)據(jù)庫,這就表示任何人都能夠用分析工具試圖連接到數(shù)據(jù)庫上,從而繞過操作系統(tǒng)的安全機制,進而闖入系統(tǒng)、破壞和竊取數(shù)據(jù)資料,甚至破壞整個系統(tǒng)。

這里,我們主要談論有關SQL Server2000數(shù)據(jù)庫的安全配置以及一些相關的安全和使用上的問題。

在進行SQL Server 2000數(shù)據(jù)庫的安全配置之前,首先你必須對操作系統(tǒng)進行安全配置,保證你的操作系統(tǒng)處于安全狀態(tài)。然后對你要使用的操作數(shù)據(jù)庫軟件(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基于數(shù)據(jù)庫的WEB應用常出現(xiàn)的安全隱患,對于腳本主要是一個過濾問題,需要過濾一些類似 , ‘ ; @ / 等字符,防止破壞者構造惡意的SQL語句。接著,安裝SQL Server2000后請打上補丁sp1以及最新的sp2。

下載地址是:http://www.microsoft.com/sql/downloads/2000/sp1.asp 和http://www.microsoft.com/sql/downloads/2000/sp2.asp ;

在做完上面三步基礎之后,我們再來討論SQL Server的安全配置。

1、使用安全的密碼策略

我們把密碼策略擺在所有安全配置的第一步,請注意,很多數(shù)據(jù)庫帳號的密碼過于簡單,這跟系統(tǒng)密碼過于簡單是一個道理。對于sa更應該注意,同時不要讓sa帳號的密碼寫于應用程序或者腳本中。健壯的密碼是安全的第一步!

SQL Server2000安裝的時候,如果是使用混合模式,那么就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。

同時養(yǎng)成定期修改密碼的好習慣。數(shù)據(jù)庫管理員應該定期查看是否有不符合密碼要求的帳號。比如使用下面的SQL語句:

  1. Use?master ?
  2. Select?name,Password?from?syslogins?where?password?is?null ?

2、使用安全的帳號策略。

由于SQL Server不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在數(shù)據(jù)庫應用中使用sa帳號,只有當沒有其它方法登錄到 SQL Server 實例(例如,當其它系統(tǒng)管理員不可用或忘記了密碼)時才使用 sa。建議數(shù)據(jù)庫管理員新建立一個擁有與sa一樣權限的超級用戶來管理數(shù)據(jù)庫。安全的帳號策略還包括不要讓管理員權限的帳號泛濫。

SQL Server的認證模式有Windows身份認證和混合身份認證兩種。如果數(shù)據(jù)庫管理員不希望操作系統(tǒng)管理員來通過操作系統(tǒng)登陸來接觸數(shù)據(jù)庫的話,可以在帳號管理中把系統(tǒng)帳號"BUILTINAdministrators"刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有辦法來恢復了。

很多主機使用數(shù)據(jù)庫應用只是用來做查詢、修改等簡單功能的,請根據(jù)實際需要分配帳號,并賦予僅僅能夠滿足應用要求和需要的權限。比如,只要查詢功能的,那么就使用一個簡單的public帳號能夠select就可以了。

3、加強數(shù)據(jù)庫日志的記錄。

審核數(shù)據(jù)庫登錄事件的"失敗和成功",在實例屬性中選擇"安全性",將其中的審核級別選定為全部,這樣在數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)日志里面,就詳細記錄了所有帳號的登錄事件。如圖:

請定期查看SQL Server日志檢查是否有可疑的登錄事件發(fā)生,或者使用DOS命令。

findstr /C:"登錄" d:Microsoft SQL ServerMSSQLLOG*.*

4、管理擴展存儲過程

對存儲過程進行大手術,并且對帳號調用擴展存儲過程的權限要慎重。其實在多數(shù)應用中根本用不到多少系統(tǒng)的存儲過程,而SQL Server的這么多系統(tǒng)存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統(tǒng)的存儲過程能很容易地被人利用起來提升權限或進行破壞。

如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:

  1. use?master ?
  2. sp_dropextendedproc?'xp_cmdshell' ?

?xp_cmdshell是進入操作系統(tǒng)的最佳捷徑,是數(shù)據(jù)庫留給操作系統(tǒng)的一個大后門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。

  1. sp_addextendedproc?'xp_cmdshell',?'xpsql70.dll'?

如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特征不能使用),這些過程包括如下:

  1. Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetProperty ?
  2. Sp_OAMethodSp_OASetPropertySp_OAStop ?

去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統(tǒng)管理員的密碼來,如下:

  1. Xp_regaddmultistringXp_regdeletekey?Xp_regdeletevalue?Xp_regenumvalues ?
  2. Xp_regread?Xp_regremovemultistring?Xp_regwrite ?

還有一些其他的擴展存儲過程,你也最好檢查檢查。

在處理存儲過程的時候,請確認一下,避免造成對數(shù)據(jù)庫或應用程序的傷害。

5、使用協(xié)議加密

SQL Server 2000使用的Tabular Data Stream協(xié)議來進行網(wǎng)絡數(shù)據(jù)交換,如果不加密的話,所有的網(wǎng)絡傳輸都是明文的,包括密碼、數(shù)據(jù)庫內容等等,這是一個很大的安全威脅。能被人在網(wǎng)絡中截獲到他們需要的東西,包括數(shù)據(jù)庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協(xié)議,當然,你需要一個證書來支持。

6、不要讓人隨便探測到你的TCP/IP端口

默認情況下,SQL Server使用1433端口監(jiān)聽,很多人都說SQL Server配置的時候要把這個端口改變,這樣別人就不能很容易地知道使用的什么端口了??上Вㄟ^微軟未公開的1434端口的UDP探測可以很容易知道SQL Server使用的什么TCP/IP端口了(請參考《深入探索SQL Server網(wǎng)絡連接的安全問題》)。

不過微軟還是考慮到了這個問題,畢竟公開而且開放的端口會引起不必要的麻煩。在實例屬性中選擇TCP/IP協(xié)議的屬性。選擇隱藏 SQL Server 實例。如果隱藏了 SQL Server 實例,則將禁止對試圖枚舉網(wǎng)絡上現(xiàn)有的 SQL Server 實例的客戶端所發(fā)出的廣播作出響應。這樣,別人就不能用1434來探測你的TCP/IP端口了(除非用Port Scan)。

7、修改TCP/IP使用的端口

請在上一步配置的基礎上,更改原默認的1433端口。在實例屬性中選擇網(wǎng)絡配置中的TCP/IP協(xié)議的屬性,將TCP/IP使用的默認端口變?yōu)槠渌丝凇H鐖D:

9、拒絕來自1434端口的探測

由于1434端口探測沒有限制,能夠被別人探測到一些數(shù)據(jù)庫信息,而且還可能遭到DOS攻擊讓數(shù)據(jù)庫服務器的CPU負荷增大,所以對Windows 2000操作系統(tǒng)來說,在IPSec過濾拒絕掉1434端口的UDP通訊,可以盡可能地隱藏你的SQL Server。

10、對網(wǎng)絡連接進行IP限制

SQL Server 2000數(shù)據(jù)庫系統(tǒng)本身沒有提供網(wǎng)絡連接的安全解決辦法,但是Windows 2000提供了這樣的安全機制。使用操作系統(tǒng)自己的IPSec可以實現(xiàn)IP數(shù)據(jù)包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的端口連接,把來自網(wǎng)絡上的安全威脅進行有效的控制。

關于IPSec的使用請參看:http://www.microsoft.com/china/technet/security/ipsecloc.asp ;

上面主要介紹的一些SQL Server的安全配置,經過以上的配置,可以讓SQL Server本身具備足夠的安全防范能力。當然,更主要的還是要加強內部的安全控制和管理員的安全培訓,而且安全性問題是一個長期的解決過程,還需要以后進行更多的安全維護。

關鍵詞標簽:SQL Server 2000,安全

相關閱讀

文章評論
發(fā)表評論

熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系

相關下載

    人氣排行 配置和注冊ODBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠程導入(導出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法