解析如何提高SQL Server 的安全性
導讀:對抗黑客侵襲的方法有很多,SQL Server 數(shù)據(jù)庫技術(shù)在發(fā)展,當然黑客技術(shù)也在不斷更新,有一些步驟你可以用來使SQL Server 數(shù)據(jù)庫對篡改數(shù)據(jù)和黑客攻擊更有抵抗力。
下面的五個步驟將帶您開始抵抗黑客保障數(shù)據(jù)庫安全性的工作。
1、查找最新的服務程序包
時刻確保你裝了最新的服務程序包。對于SQL Server 2000,這個補丁是SP3a 。記住,服務程序包是漸增的,所以如果你應用了SP3a ,你就不需要再應用其他任何在此之前的程序包,例如SP3, SP2 或 SP1。SP3a 是一個特殊的服務程序包,它是為那些沒有進行過以前的任何更新而設計的安裝程序,而SP3 則是為那些已經(jīng)安裝了SP1 或SP2準備的安裝程序。
2、使用安全警報
補丁能夠幫助你保護你的SQL Server 數(shù)據(jù)庫免受許多威脅,但是他們的發(fā)布速度總是跟不上那些移動迅速的安全性問題的處理,例如Spammer 蠕蟲。所以你就會想要使用微軟公司的免費的安全通知服務,一封電子郵件服務就可以使你了解關(guān)于破壞安全的問題和怎樣處理它們。
3、運行微軟的基線安全分析器(MBSA)
這個工具對于SQL Server 和MSDE 2000 Desktop Engine 都是可用的,并且它可以在本地運行,也可以在網(wǎng)絡中運行。它尋找密碼,訪問權(quán)限,訪問控制清單和注冊的問題,并且檢查遺漏的安全程序包或服務程序包。你可以在TechNet上找到這個工具的相關(guān)信息。
4、刪除SA和舊密碼
人們犯的關(guān)于密碼的最大的安全性錯誤就是對系統(tǒng)管理員(SA)密碼不做任何修改。你可能很輕易的忽略安裝文件中的剩余的配置信息,保護得很差的認證信息和其他一些敏感的數(shù)據(jù)就會遭黑客破壞。你必須刪除在這個路經(jīng)下的舊的安裝文件:Program Files\Microsoft SQL Server\MSSQL\Install或Program Files\Microsoft SQL Server\MSSQL$\Install folders。還有,可以使用KILLPWD應用程序來找舊的密碼并且刪除它們。Knowledge Base文章263968對這個問題做了詳細的說明。
5、監(jiān)控連接
連接可以告訴你誰試圖訪問SQL Server,所以監(jiān)視和控制連接是保護數(shù)據(jù)庫安全的一個非常好的方法。對于一個大型的活動的SQL Server 數(shù)據(jù)庫,可能會有太多的數(shù)據(jù)連接需要監(jiān)控,但是監(jiān)控失敗的連接是非常有價值的,因為它們可能表現(xiàn)出使用的企圖。你可以在企業(yè)管理器中在服務組上右擊,然后選擇Properties,記錄下失敗連接的日志。然后點擊Security選項卡,在Audit Level下點擊Failure來停止并重新啟動服務器。
SQL Server系統(tǒng)身份驗證方式
1. 用戶標識與驗證
用戶標示和驗證是系統(tǒng)提供的最外層安全保護措施。其方法是由系統(tǒng)提供一定的方式讓用戶標示自己的名字或身份。每次用戶要求進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供機器使用權(quán)。
對于獲得上機權(quán)的用戶若要使用數(shù)據(jù)庫時數(shù)據(jù)庫管理系統(tǒng)還要進行用戶標識和鑒定。
用戶標識和鑒定的方法有很多種,而且在一個系統(tǒng)中往往是多種方法并舉,以獲得更強的安全性。常用的方法有:
用一個用戶名或者用戶標識號來標明用戶身份。系統(tǒng)內(nèi)部紀錄著所有合法用戶的標識,系統(tǒng)驗證此戶是否合法用戶,若是,則可以進入下一步的核實;若不是,則不能使用系統(tǒng)。
為了進一步核實用戶,系統(tǒng)常常要求用戶輸入口令(Password)。為保密起見,用戶在終端上輸入的口令不顯示在屏幕上。系統(tǒng)核對口令以驗證用戶身份。
用戶標識與驗證在SQL Server中對應的是Windows NT/2000登錄賬號和口令以及SQL Server用戶登錄賬號和口令。
2. SQL Server身份驗證方式
用戶必須使用一個登錄賬號,才能連接到SQL Server中。SQL Server可以識別兩類的身份驗證方式,即:SQL Server身份驗證(SQL Server Authentication)方式和Windows身份驗證(Windows Authentication)方式。這兩種方式的結(jié)構(gòu)如圖2所示。這兩種方式都有自己的登錄賬號類型。
注意的是,如果在Microsoft Windows95/98/ME上使用SQL Server的Personal版,作為SQL Server宿主的Microsoft Windows95/98/ME系統(tǒng)只能使用SQL Server登錄。因此,Windows NT/2000身份驗證、域用戶的賬號和域組賬號都是不可用的。
當使用SQL Server身份驗證方式時, 由SQL Server系統(tǒng)管理員定義SQL Server賬號和口令。當用戶連接SQL Serve時,必須提供登錄賬號和口令。當使用Windows身份驗證方式時,由Windows NT/2000賬號或者組控制用戶對SQL Server系統(tǒng)的訪問。這時,用戶不必提供SQL Server的Login賬號和口令就能連接到系統(tǒng)上。但是,在該用戶連接之前,SQL Serve系統(tǒng)管理員必須將Windows NT/2000賬號或者Windows NT/2000組定義為SQL Server的有效登錄賬號。
3. 身份驗證模式
當SQL Serve在Windows NT/2000上運行時,系統(tǒng)管理員必須指定系統(tǒng)的身份驗證模式類型。SQL Server的身份驗證模式有兩種:Windows 身份驗證(Windows Authentication)模式和混合模式(Mixed Mode)。身份驗證模式和身份驗證方式的關(guān)系是:
Windows身份驗證模式 (Windows身份驗證方式)
混合模式 (Windows 身份驗證方式 和 SQL Server 身份驗證方式)
Windows 身份驗證模式只允許使用Windows 身份驗證方式,這時用戶無法以SQL Server的登錄賬號登錄服務器。它要求用戶登錄到Windows NT/2000,當用戶訪問SQL Server時,不用再次登錄。雖然用戶仍會被提示登錄,但SQL Server的用戶名會自動從用戶網(wǎng)絡登錄ID中提取。而混合身份驗證模式即允許使用Windows NT/2000身份驗證方式,又允許使用SQL Server身份驗證方式。它使用戶既可以登錄SQL Server,也可用Windows NT/2000的集成登錄。
集成登錄只能在用命名管道連接客戶機服務器時使用。當使用混合模式時,無論是使用Windows NT/2000身份驗證方式的用戶,還是使用SQL Server身份驗證方式的用戶,都可以連接到SQL Server系統(tǒng)上。也就是說:身份驗證模式是對服務器來說的,而身份驗證方式是對客戶端來說的。
4. Windows身份驗證模式
Windows 身份驗證模式最適用于只在部門訪問數(shù)據(jù)庫的情況。與SQL Server身份驗證方式相比,Windows身份驗證方式具有下列優(yōu)點:提供了更多的功能,例如安全確認和口令加密、審核、口令失效、最小口令長度和賬號鎖定;通過增加單個登錄賬號,允許在SQL Server系統(tǒng)中增加用戶組;允許用戶迅速訪問SQL Server系統(tǒng),而不必使用另一個登錄賬號和口令。
SQL Server系統(tǒng)按照下列步驟處理Windows 身份驗證方式中的登錄賬號:
1)當用戶連接到Windows NT/2000系統(tǒng)上時,客戶機打開一個到SQL Server系統(tǒng)的委托連接。該委托連接將Windows NT/2000的組和用戶賬號傳送到SQL Server系統(tǒng)中。因為客戶機打開了一個委托連接,所以SQL Server系統(tǒng)知道Windows NT/2000已經(jīng)確認該用戶有效。
2)如果SQL Server系統(tǒng)在系統(tǒng)表syslogins的SQL Server用戶清單中找到該用戶的Windows NT/2000用戶賬號或者組賬號,就接受這次身份驗證連接。這時,SQL Server系統(tǒng)不需要重新驗證口令是否有效,因為Windows NT/2000已經(jīng)驗證用戶的口令是有效的。
3)在這種情況下,該用戶的SQL Server系統(tǒng)登錄賬號即可以是Windows NT/2000的用戶賬號,也可以是Windows NT/2000組賬號。當然,這些用戶賬號或者組賬號都已定義為SQL Server系統(tǒng)登錄賬號。
4)如果多個SQL Server機器在一個域或者在一組信任域中,那么登錄到單個網(wǎng)絡域上,就可以訪問全部的SQL Server機器。
5. 混合模式
混合模式最適合用于外界用戶訪問數(shù)據(jù)庫或不能登錄到Windows域時。
混合方式的SQL Server身份驗證方式有下列優(yōu)點:混合方式允許非Windows NT/2000客戶、Internet客戶和混合的客戶組連接到SQL Server中;SQL Server身份驗證方式又增加了一層基于Windows 的安全保護。SQL Server按照下列步驟處理自己的登錄賬號:
1.當一個使用SQL Server賬號和口令的用戶連接SQL Server時,SQL Server驗證該用戶是否在系統(tǒng)表syslogins中且其口令是否與以前紀錄的口令匹配。
2.如果在系統(tǒng)表syslogins中沒有該用戶賬號,那么這次身份驗證失敗,系統(tǒng)拒絕該用戶的連接。
結(jié)束語
SQL Server提供多層安全。在最外層,SQL Server的登錄安全性直接集成到Widows NT/2000的安全上,它允許Windows NT服務器驗證用戶。使用這種"Windows 驗證"SQL Server就可以利用Windows NT/2000的安全特性,例如安全驗證和密碼加密、審核、密碼過期、最短密碼長度,以及在多次登錄請求無效后鎖定帳號。
【編輯推薦】