国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

剖析SQL Server 2005數(shù)據(jù)安全性策略

2009-10-29 10:07李艷鵬

魏 慧 李艷鵬

摘要:數(shù)據(jù)庫(kù)安全性問題一直是數(shù)據(jù)庫(kù)管理員重點(diǎn)考慮的問題。數(shù)據(jù)庫(kù)中數(shù)據(jù)的丟失以及數(shù)據(jù)庫(kù)被非法用戶侵入給數(shù)據(jù)庫(kù)管理員造成的損失很大。文章圍繞數(shù)據(jù)庫(kù)的安全性問題提出了一些安全性策略,包括數(shù)據(jù)庫(kù)加密、數(shù)據(jù)庫(kù)的訪問應(yīng)注意的事項(xiàng),希望對(duì)數(shù)據(jù)庫(kù)管理員有所幫助。

關(guān)鍵詞:數(shù)據(jù)庫(kù)安全性;認(rèn)證模式;SQL Server身份驗(yàn)證;權(quán)限范圍

中圖分類號(hào):TP393

文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-2374(2009)18-0110-02

對(duì)任何企業(yè)組織來說,數(shù)據(jù)的泄露或篡改將導(dǎo)致利益的損失。因此數(shù)據(jù)的安全性最為重要。安全性主要是指允許那些具有相應(yīng)的數(shù)據(jù)訪問權(quán)限的用戶能夠登錄到SQL Server 并訪問數(shù)據(jù)以及對(duì)數(shù)據(jù)庫(kù)對(duì)象實(shí)施各種權(quán)限范圍內(nèi)的操作,但是要拒絕所有的非授權(quán)用戶的非法操作。因此,安全性管理與用戶管理是密不可分的。伴隨著微軟“可信賴計(jì)算”計(jì)劃的實(shí)施,SQL Server 2005 中加入了豐富的安全特性,提供了極為嚴(yán)密的全新安全性設(shè)計(jì)為數(shù)據(jù)庫(kù)應(yīng)用更好地保駕護(hù)航。

一、SQL Server 2005 的安全性管理

SQL Server 2005 的安全性管理是建立在認(rèn)證(authentication)和訪問許可(permission)兩者機(jī)制上的。認(rèn)證是指來確定登錄SQL Server 的登錄賬號(hào)和密碼是否正確,以此來驗(yàn)證其是否具有連接SQL Server 的權(quán)限。但是,通過認(rèn)證階段并不代表能夠訪問SQL Server 中的數(shù)據(jù),用戶只有在獲取訪問數(shù)據(jù)庫(kù)的權(quán)限之后,才能夠?qū)Ψ?wù)器上的數(shù)據(jù)庫(kù)進(jìn)行權(quán)限許可下的各種操作(主要是針對(duì)數(shù)據(jù)庫(kù)對(duì)象,如表、視圖、存儲(chǔ)過程等),這種用戶訪問數(shù)據(jù)庫(kù)權(quán)限的設(shè)置是通過用戶賬號(hào)來實(shí)現(xiàn)的。同時(shí)在SQL Server 中,角色作為用戶組的代替物大大地簡(jiǎn)化了安全性管理。

(一)數(shù)據(jù)庫(kù)加密

由于數(shù)據(jù)庫(kù)在操作系統(tǒng)中以文件形式管理,所以入侵者可以直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫(kù)文件,或者篡改數(shù)據(jù)庫(kù)文件內(nèi)容。另一方面,數(shù)據(jù)庫(kù)管理員(DBA)可以任意訪問所有數(shù)據(jù),往往超出了其職責(zé)范圍,同樣造成安全隱患。因此,數(shù)據(jù)庫(kù)的保密問題不僅包括在傳輸過程中采用加密保護(hù)和控制非法訪問,還包括對(duì)存儲(chǔ)的敏感數(shù)據(jù)進(jìn)行加密保護(hù),使得即使數(shù)據(jù)不幸泄露或者丟失,也難以造成泄密。

數(shù)據(jù)庫(kù)中存儲(chǔ)密文數(shù)據(jù)后,如何進(jìn)行高效查詢成為一個(gè)重要的問題。查詢語句一般不可以直接運(yùn)用到密文數(shù)據(jù)庫(kù)的查詢過程中,一般的方法是首先解密加密數(shù)據(jù),然后查詢解密數(shù)據(jù)。但由于要對(duì)整個(gè)數(shù)據(jù)庫(kù)或數(shù)據(jù)表進(jìn)行解密操作,因此開銷巨大。在實(shí)際操作中需要通過有效的查詢策略來直接執(zhí)行密文查詢或較小粒度的快速解密。

一般來說,一個(gè)好的數(shù)據(jù)庫(kù)加密系統(tǒng)應(yīng)該滿足的要求:足夠的加密強(qiáng)度,保證長(zhǎng)時(shí)間且大量數(shù)據(jù)不被破譯;加密后的數(shù)據(jù)庫(kù)存儲(chǔ)量沒有明顯的增加;加解密速度足夠快,影響數(shù)據(jù)操作響應(yīng)時(shí)間盡量短;加解密對(duì)數(shù)據(jù)庫(kù)的合法用戶操作(如數(shù)據(jù)的增、刪、改等)是透明的;靈活的密鑰管理機(jī)制,加解密密鑰存儲(chǔ)安全,使用方便可靠。

1.數(shù)據(jù)庫(kù)加密的實(shí)現(xiàn)機(jī)制。數(shù)據(jù)庫(kù)加密的實(shí)現(xiàn)機(jī)制主要研究執(zhí)行加密部件在數(shù)據(jù)庫(kù)系統(tǒng)中所處的層次和位置,通過對(duì)比各種體系結(jié)構(gòu)的運(yùn)行效率、可擴(kuò)展性和安全性,以求得最佳的系統(tǒng)結(jié)構(gòu)。按照加密部件與數(shù)據(jù)庫(kù)系統(tǒng)的不同關(guān)系,數(shù)據(jù)庫(kù)加密機(jī)制可以從大的方面分為庫(kù)內(nèi)加密和庫(kù)外加密。

2.數(shù)據(jù)庫(kù)加密的粒度。一般來說,數(shù)據(jù)庫(kù)加密的粒度可以有4種,即表、屬性、記錄和數(shù)據(jù)元素。不同加密粒度的特點(diǎn)不同,總的來說,加密粒度越小,則靈活性越好且安全性越高,但實(shí)現(xiàn)技術(shù)也更為復(fù)雜,對(duì)系統(tǒng)的運(yùn)行效率影響也越大。

(1)表加密。表級(jí)加密的對(duì)象是整個(gè)表,這種加密方法類似于操作系統(tǒng)中文件加密的方法。即每個(gè)表與不同的表密鑰運(yùn)算,形成密文后存儲(chǔ)。這種方式最為簡(jiǎn)單,但因?yàn)閷?duì)表中任何記錄或數(shù)據(jù)項(xiàng)的訪問都需要將其所在表的所有數(shù)據(jù)快速解密,因而執(zhí)行效率很低,浪費(fèi)了大量的系統(tǒng)資源。在目前的實(shí)際應(yīng)用中,這種方法基本已被放棄。

(2)屬性加密。屬性加密又稱為“域加密”或“字段加密”,即以表中的列為單位進(jìn)行加密。一般而言,屬性的個(gè)數(shù)少于記錄的條數(shù),需要的密鑰數(shù)相對(duì)較少。如果只有少數(shù)屬性需要加密,屬性加密是可選的方法。

(3)數(shù)據(jù)元素加密。數(shù)據(jù)元素加密是以記錄中每個(gè)字段的值為單位進(jìn)行加密,數(shù)據(jù)元素是數(shù)據(jù)庫(kù)中最小的加密粒度。采用這種加密粒度,系統(tǒng)的安全性與靈活性最高,同時(shí)實(shí)現(xiàn)技術(shù)也最為復(fù)雜。不同的數(shù)據(jù)項(xiàng)使用不同的密鑰,相同的明文形成不同的密文,抗攻擊能力得到提高。

在目前條件下,為了得到較高的安全性和靈活性,采用最多的加密粒度是數(shù)據(jù)元素。為了使數(shù)據(jù)庫(kù)中的數(shù)據(jù)能夠充分而靈活地共享,加密后還應(yīng)當(dāng)允許用戶以不同的粒度進(jìn)行訪問。

3.數(shù)據(jù)庫(kù)加密的局限性。數(shù)據(jù)庫(kù)加密技術(shù)在保證安全性的同時(shí),也給數(shù)據(jù)庫(kù)系統(tǒng)的可用性帶來一些影響。

(1)系統(tǒng)運(yùn)行效率受到影響。數(shù)據(jù)庫(kù)加密技術(shù)帶來的主要問題之一是影響效率。為了減少這種影響,一般對(duì)加密的范圍做一些約束,如不加密索引字段和關(guān)系運(yùn)算的比較字段等。

(2)對(duì)數(shù)據(jù)的SQL語言及SQL函數(shù)受到制約。SQL語言中的Group by、Order by及Having子句分別完成分組和排序等操作,如果這些子句的操作對(duì)象是加密數(shù)據(jù),那么解密后的明文數(shù)據(jù)將失去原語句的分組和排序作用。另外,DBMS擴(kuò)展的SQL內(nèi)部函數(shù)一般也不能直接作用于密文數(shù)據(jù)。

(3)密文數(shù)據(jù)容易成為攻擊目標(biāo)。數(shù)據(jù)庫(kù)加密作為一種對(duì)敏感數(shù)據(jù)進(jìn)行安全保護(hù)的有效手段,將得到越來越多的重視。總體來說,目前數(shù)據(jù)庫(kù)加密技術(shù)還面臨許多挑戰(zhàn),其中解決保密性與可用性之間的矛盾是關(guān)鍵。

(二) 數(shù)據(jù)庫(kù)的訪問

確保當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)DownTime時(shí),數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)媒體被破壞時(shí)以及當(dāng)數(shù)據(jù)庫(kù)用戶誤操作時(shí),數(shù)據(jù)庫(kù)數(shù)據(jù)信息不至于丟失。 具體表現(xiàn)在以下兩主面:

1. 給用戶授予其所需要的最小權(quán)限 。不要給數(shù)據(jù)庫(kù)用戶提供比其需要的還要多的權(quán)限。換句話說,只給用戶真正需要的、為高效和簡(jiǎn)潔地完成工作所需要的權(quán)限。這個(gè)道理很容易理解。這就好像防止職業(yè)貪污一樣。你若只給某個(gè)員工其完成工作所必需的費(fèi)用,一分都不多給,那其從哪里貪污呢?如從數(shù)據(jù)庫(kù)服務(wù)器的角度來考慮這個(gè)問題,這就要求數(shù)據(jù)庫(kù)管理員在設(shè)置用戶訪問權(quán)限的時(shí)候,注意如下幾個(gè)方面的問題:(1)要限制數(shù)據(jù)庫(kù)管理員用戶的數(shù)量。在任何一個(gè)服務(wù)器中,管理員具有最高的權(quán)限。為了讓數(shù)據(jù)庫(kù)維持正常的運(yùn)轉(zhuǎn),必須給數(shù)據(jù)庫(kù)配置管理員賬戶。否則的話,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障的時(shí)候,就沒有合適的用戶對(duì)其進(jìn)行維護(hù)了。但是,這個(gè)管理員賬戶的數(shù)量要嚴(yán)格進(jìn)行限制。不能為了貪圖方便,把各個(gè)用戶都設(shè)置成為管理員。(2)選擇合適的賬戶連接到數(shù)據(jù)庫(kù)。一般數(shù)據(jù)庫(kù)的訪問權(quán)限可以通過兩種方式進(jìn)行控制:一是通過前臺(tái)應(yīng)用程序。也就是說,其連接到數(shù)據(jù)庫(kù)是一個(gè)統(tǒng)一的賬戶,如管理員賬戶;這種方式雖然可以減少前臺(tái)程序開發(fā)的工作量,但是,對(duì)于數(shù)據(jù)庫(kù)服務(wù)器的安全是不利的。二是在前臺(tái)程序中,就直接利用員工賬戶的賬號(hào)登陸到數(shù)據(jù)庫(kù)系統(tǒng)。這種做法雖然可以提高數(shù)據(jù)庫(kù)的安全性,但是,其前臺(tái)配置的工作量會(huì)比較繁瑣。而筆者往往采用折中的方法??傊?我們的目的就是要限制以數(shù)據(jù)庫(kù)管理員身份連接到數(shù)據(jù)庫(kù)的用戶數(shù)量。在其他應(yīng)用服務(wù)器中,也有管理員賬戶與普通賬戶之分。在權(quán)限分配的時(shí)候,最好只給用戶授予其需要的最小權(quán)限,以保障服務(wù)器的安全。

2.取消默認(rèn)賬戶不需要的權(quán)限。在建立賬戶的時(shí)候,服務(wù)器往往給其一些默認(rèn)的權(quán)限。如在數(shù)據(jù)庫(kù)中,Public是授予每個(gè)用戶的默認(rèn)角色。任何用戶,只要沒有指定具體的角色,則其都可以授予Public組的權(quán)限。這其中,還包括執(zhí)行各種SQL語句的權(quán)限。如此,用戶就有可能利用這個(gè)管理漏洞,去訪問那些不允許他們直接訪問的包。因?yàn)檫@個(gè)默認(rèn)權(quán)限,對(duì)于那些需要他們并且需要合適配置和使用他們的應(yīng)用來說,是非常有用的,所以,系統(tǒng)默認(rèn)情況下,并沒有禁止。但是,這些包可能不適合于其他應(yīng)用。因此,除非絕對(duì)的需要,否則就應(yīng)該從默認(rèn)缺陷中刪除。建議的做法是,會(huì)把應(yīng)用系統(tǒng)的默認(rèn)用戶權(quán)限設(shè)置為最小,有些甚至把默認(rèn)用戶權(quán)限全部取消掉。這就迫使服務(wù)器管理員在建立賬戶的時(shí)候,給賬戶指定管理員預(yù)先設(shè)定的角色。這就可以有效的防止管理員“偷懶”。在建立賬戶的時(shí)候,不指定角色。

二、結(jié)語

數(shù)據(jù)庫(kù)中存放著大量的數(shù)據(jù),保護(hù)數(shù)據(jù)不受內(nèi)部和外部的侵害是一項(xiàng)重要的任務(wù)。SQL Server 2005廣泛地應(yīng)用于企業(yè)的各個(gè)部門,做為數(shù)據(jù)庫(kù)系統(tǒng)管理員,需要深入地理解SQL Server的安全控制策略,以實(shí)現(xiàn)安全管理的目標(biāo)。

參考文獻(xiàn)

[1]徐守祥. 數(shù)據(jù)庫(kù)應(yīng)用技術(shù)[M].人民郵電出版社,2005.

[2]楊學(xué)全. SQL Server 2000實(shí)例教程[M]. 電子工業(yè)出版社,2005.

[3]迪尤遜. 圖靈程序設(shè)計(jì)叢書[M]. 人民郵電出版社,2006.

[4]張建偉. 數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用-SQL Server 2005[M]. 人民郵電出版社,2008.

[5]周奇.SQL Server 2005 數(shù)據(jù)庫(kù)基礎(chǔ)及應(yīng)用技術(shù)教程與實(shí)訓(xùn)[M]. 北京大學(xué)出版社,2008.

作者簡(jiǎn)介:魏慧(1981-),女,山東濟(jì)寧人,濟(jì)寧職業(yè)技術(shù)學(xué)院助教,研究方向:計(jì)算機(jī)軟件開發(fā);李艷鵬(1980-),女,山東濟(jì)寧人,濟(jì)寧職業(yè)技術(shù)學(xué)院助教,研究方向:計(jì)算機(jī)應(yīng)用。