SQL Server數(shù)據(jù)庫在企業(yè)中的應(yīng)用越來越多,安全性顯得越來越突出。特別是最近一段時間以來,一種新的網(wǎng)絡(luò)攻擊技術(shù)開始在Internet上快速流行,那就是“SQL Injection”,俗稱“腳本注入式攻擊”,只要被不法分子盯上的系統(tǒng),恰好您使用的數(shù)據(jù)庫是SQL Server 2000的話,那么被成功入侵的概率高達(dá)90%。
如何加強數(shù)據(jù)庫的安全呢?本文將向您全面介紹保護SQL Server 2000數(shù)據(jù)庫安全配置的十七招。
第一招 首先確認(rèn)是否已經(jīng)安裝了操作系統(tǒng)和SQL Server的最新安全補丁。很多黑客攻擊不是通過SQL Server本身的漏洞來完成資料竊取的,而是通過操作系統(tǒng)漏洞來完成,然后進入到數(shù)據(jù)庫中。
第二招 根據(jù)業(yè)務(wù)系統(tǒng)需求,選擇一個考慮到最大安全性但是同時又不影響功能的網(wǎng)絡(luò)協(xié)議。如TCP/IP協(xié)議、命名管道等。
第三招 眾所周知,SQL Server的“SA”賬戶在默認(rèn)狀態(tài)下是空密碼的。給其設(shè)定一個足夠復(fù)雜并且足夠長度密碼來加強其安全性,同時把該密碼保存在一個安全的地方。
配置方法:開始→所有程序→Microsoft SQL Server→企業(yè)管理器,展開控制臺根目錄,選擇“安全性”,展開,點擊“登錄”,在右側(cè)的用戶列表中可以看到有SA這個用戶。雙擊打開SA用戶,可以更改SA用戶的密碼。
第四招 建立一個低權(quán)限用戶做為SQL服務(wù)器服務(wù)的查詢操作專用賬戶,不要用LocalSystem或SA。 這個賬戶應(yīng)該有最小的權(quán)利,比如僅能執(zhí)行Select語句,對其他的DDL操縱語句都沒有權(quán)限。
配置方法:展開控制臺根目錄,選擇“數(shù)據(jù)庫”,展開,點擊“用戶”,在右側(cè)用戶列表中可以看到已經(jīng)授權(quán)的用戶,在默認(rèn)狀態(tài)下只有“SA”和“Guest”兩個用戶。雙擊打開已經(jīng)建立的低權(quán)限賬戶,打開數(shù)據(jù)庫用戶屬性。選擇數(shù)據(jù)庫腳色,盡可能低的權(quán)限。打開“權(quán)限”按鈕,賦予用戶相應(yīng)的權(quán)限,最好全部是Select查詢權(quán)限。
第五招 確認(rèn)SQL服務(wù)器系統(tǒng)安裝在NTFS分區(qū),且權(quán)限控制列表 被應(yīng)用。如果黑客得到對數(shù)據(jù)庫系統(tǒng)的存取操作權(quán)限,該層權(quán)限可以阻止入侵者進一步破壞數(shù)據(jù)。Windows 2000或者2003 Server都是需要安裝在NTFS分區(qū)。
配置方法:找到SQL Server安裝文件夾,默認(rèn)安裝在“X:Program FilesMicrosoft SQL Server”目錄下。鼠標(biāo)右鍵,選擇“屬性”。注意查看“共享”屬性選項卡,一定不要共享。點擊安全選項,只有許可的用戶才能訪問這個文件夾。
第六招 嚴(yán)格禁止使用Xp_cmdshell命令。限制所有的賬戶擁有操作、使用XP_cmdshell的權(quán)限。如果黑客或者其他有惡意的人,擁有操作這個命令的權(quán)限,那它就可以輕松得到系統(tǒng)管理員的權(quán)限。
第七招 在業(yè)務(wù)應(yīng)用系統(tǒng)中,如果不需要就停用對象連接與嵌入自動化儲存程序。當(dāng)這些儲存程序被停用的時候,企業(yè)管理器部分功能可能丟失。比如:DTS數(shù)據(jù)導(dǎo)入導(dǎo)出。同時,禁用部分注冊表存取程序。
注意:Xp_regread和 xp_regwrite這兩個存儲過程如果刪除,會影響一些主要功能包括日志和SP的安裝。建議保留。
第八招 關(guān)閉遠(yuǎn)程服務(wù)器連接。如果允許使用遠(yuǎn)程服務(wù)器連接,入侵者在自己的機器上安裝SQL Server就可以使用數(shù)據(jù)庫服務(wù)器連接到你服務(wù)器的數(shù)據(jù)庫上,這是一個危險級別很高的安全風(fēng)險。
配置方法:展開控制臺根目錄,選擇“(Local)Windows NT”,鼠標(biāo)右鍵,選擇“屬性”,在配置窗口中選擇“連接”選項卡,去掉“允許其他SQL Server使用RPC遠(yuǎn)程連接到本SQL Server”選項。這樣就可以防止他人使用數(shù)據(jù)庫的惡意連接。如圖1所示。
第九招 注意SQL服務(wù)器的物理安全。數(shù)據(jù)機房禁止不相關(guān)的人員進入,把Server鎖在機柜里,并且注意鑰匙的安全,只要有機會到服務(wù)器面前,就會找到攻擊服務(wù)器的方法。
第十招 在系統(tǒng)中,有很多人沒有設(shè)置密碼的習(xí)慣。審計使用空密碼的用戶,強制使用安全密碼。
使用下列語句,可以得到現(xiàn)有用戶中沒有使用密碼的賬號:
Select name,Password from syslogins where password is null
執(zhí)行結(jié)果如圖2所示。可以看到目前在業(yè)務(wù)系統(tǒng)中有四個人的密碼是空,其中包括SA超級用戶的密碼。
第十一招 不允許使用者交互式登錄到SQL Server之上。這個規(guī)則適用任何服務(wù)器。一旦一個使用者能夠交互式進入一個服務(wù)器之內(nèi),就有可能利用管理員的存取特權(quán)得到管理員權(quán)限。
解決方法:關(guān)閉遠(yuǎn)程終端服務(wù)和Windows 2003的Web管理功能。
第十二招 啟用混合模式安全性認(rèn)證,在默認(rèn)狀態(tài)只是執(zhí)行失敗的審核,建議使用“SQL Server和Windows”身份驗證,審核級別使用“全部”。“無”表示不執(zhí)行審核;“成功”表示只審核成功的登錄嘗試;“失敗”表示只審核失敗的登錄嘗試;“全部”表示審核成功的和失敗的登錄嘗試。
配置方法:展開控制臺根目錄,選擇“(Local)Windows NT”,鼠標(biāo)右鍵,選擇“屬性”,在配置窗口中選擇“安全性”選項卡,審核級別選擇“全部”,記錄所有的身份驗證狀況。
第十三招 定期檢測SQL日志文件,檢索其中成功登錄或者登錄失敗的信息,從而找到任何非法入侵者所作多次數(shù)據(jù)庫登錄嘗試。
配置方法:展開控制臺根目錄,選擇“管理”,展開,選擇“SQL Server日志”,在右側(cè)窗口列表中打開您選擇的日志文件,上面有詳細(xì)的記錄狀況。如圖3所示。
第十四招 制定嚴(yán)格的數(shù)據(jù)庫備份策略,在數(shù)據(jù)庫管理中,這是最重要的工作。同時在允許的條件下模擬可能出現(xiàn)的災(zāi)難情況,模擬出測試環(huán)境,進行數(shù)據(jù)保護有效性防范,減少故障發(fā)生的機率,系統(tǒng)災(zāi)難恢復(fù)時間最小化。
第十五招 如果條件許可,數(shù)據(jù)庫文件和日志文件分開存儲,分別放在不同的物理存儲設(shè)備上。一旦發(fā)生災(zāi)難性故障,如硬件損壞,數(shù)據(jù)文件和日志存放在一起,沒有任何手段可以恢復(fù)數(shù)據(jù)。如果做了數(shù)據(jù)備份,同時日志文件保存在其它位置,并且日志文件沒有損壞的情況下,就有可能恢復(fù)數(shù)據(jù)。數(shù)據(jù)安全級別定義:高。
配置方法:雙擊數(shù)據(jù)庫文件名,打開數(shù)據(jù)庫屬性,點擊“數(shù)據(jù)文件”選項卡,設(shè)置數(shù)據(jù)文件存放的位置。如圖4所示。點擊“事務(wù)日志”選項卡,設(shè)置日至文件存放的位置。
第十六招 選擇數(shù)據(jù)庫故障還原模型,建議選擇“完全”方式。
SQL Server2000支持3種方式的數(shù)據(jù)庫故障還原模型:簡單、完全、大容量日志記錄。其優(yōu)缺點如表1所示。
配置方法:選中數(shù)據(jù)庫名稱,鼠標(biāo)右鍵選擇屬性,點擊“選項”選項卡,在故障還原子段下有一個‘模型’欄目,選擇需要設(shè)置的模型方式即可。如圖5所示。
第十七招 關(guān)閉服務(wù)器行為下的允許對“系統(tǒng)目錄直接進行修改”功能。如果開啟此功能,則在數(shù)據(jù)庫架構(gòu)內(nèi)可以使用擴展存儲過程對系統(tǒng)目錄下的文件或者其他信息進行修改,或者在數(shù)據(jù)庫架構(gòu)內(nèi)上傳具有惡意功能的代碼。這是大家都不愿意看到的。安全風(fēng)險級別:高。
配置方法:鼠標(biāo)右鍵數(shù)據(jù)庫服務(wù)器,選擇“服務(wù)器設(shè)置”,在“服務(wù)器行為”字段下,關(guān)閉“系統(tǒng)目錄直接進行修改”。如圖6所示。
以上為您介紹了SQL Server 2000數(shù)據(jù)庫安全配置的十七種方法,這些方法只要使用得當(dāng),做好安全管理工作就不是一個難題。
表1 三種還原模型對比表
簡單方式還原模型 產(chǎn)生日志文件的容量小,方便檢索。 如果一旦發(fā)生數(shù)據(jù)損壞的情況, 常常不能恢復(fù)數(shù)據(jù)。
大容量日志記錄故障還原模型 所有的對數(shù)據(jù)庫的操作將全部保留,會日志文件太大。產(chǎn)生一個巨大的日志文件。如果數(shù)據(jù)文 件發(fā)生損壞,可以完全恢復(fù)數(shù)據(jù)庫的數(shù)據(jù)。
完全方式的還原模型對數(shù)據(jù)庫的數(shù)據(jù)操作將全部保留,會產(chǎn)對數(shù)據(jù)庫的一些操作記錄的不 生一個適中的日志文件,也可以恢復(fù)數(shù)據(jù)庫數(shù)據(jù)夠詳細(xì)。