摘 要:SQL數(shù)據(jù)庫是一種關(guān)系型數(shù)據(jù)庫,主要承擔(dān)海量數(shù)據(jù)的存儲、管理和實(shí)時(shí)調(diào)用等工作。SQL數(shù)據(jù)庫具有操作方便、簡單靈活等特點(diǎn),深受廣大企業(yè)青睞。隨著數(shù)據(jù)庫信息重要性的凸顯以及數(shù)據(jù)量的不斷增多,對SQL數(shù)據(jù)庫的關(guān)注不僅僅限于開放應(yīng)用層面,SQL數(shù)據(jù)庫的安全管理以及性能優(yōu)化也值得廣泛關(guān)注。
關(guān)鍵詞:SQL數(shù)據(jù)庫;安全管理;性能優(yōu)化
隨著科學(xué)技術(shù)的進(jìn)步,互聯(lián)網(wǎng)應(yīng)用的普及,各種數(shù)據(jù)信息不斷增多,數(shù)據(jù)庫的應(yīng)用備受人們重視。SQL數(shù)據(jù)庫是一種關(guān)系型數(shù)據(jù)庫,主要承擔(dān)海量數(shù)據(jù)存儲、管理和實(shí)時(shí)調(diào)用等工作,在整個網(wǎng)絡(luò)系統(tǒng)中占據(jù)重要的地位。由于SQL 數(shù)據(jù)庫具有操作方便、簡單靈活,深受廣大企業(yè)的青睞。SQL數(shù)據(jù)庫是整個網(wǎng)絡(luò)數(shù)據(jù)的基礎(chǔ),也是黑客等不法人員重點(diǎn)攻擊的對象。除此之外,隨著數(shù)據(jù)庫數(shù)據(jù)量的增加,并發(fā)用戶數(shù)量的增多,系統(tǒng)常常會出現(xiàn)吞吐量降低、響應(yīng)時(shí)間長等問題,SQL數(shù)據(jù)庫的性能優(yōu)化問題也凸顯出來。因此,對SQL數(shù)據(jù)庫的關(guān)注不僅僅限于其開發(fā)應(yīng)用層面,而且還應(yīng)關(guān)注SQL數(shù)據(jù)庫的安全管理和性能優(yōu)化等層面。
1 SQL數(shù)據(jù)庫安全管理和性能優(yōu)化面臨的問題
SQL是一種數(shù)據(jù)庫語言,即:結(jié)構(gòu)化功能語言,最終是由Boyce和Chamberlin在1974年提出的。SQL具有功能豐富、使用靈活簡便等優(yōu)勢,集數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)控制等功能于一體,已經(jīng)發(fā)展為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。自從SQL成為國際標(biāo)準(zhǔn)語言以后,幾乎所有的數(shù)據(jù)庫均支持SQL。SQL數(shù)據(jù)庫屬于整個系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)的核心,因此,SQL數(shù)據(jù)庫的安全管理意義重大。一般上講,SQL Server有兩種安全模式,一種是“僅Windows”模式,僅允許受信任的Windows NT 賬戶的用戶登錄。另外一種是“SQL與Windows用戶驗(yàn)證模式”。這種模式相對第一種模式安全性較差,容易遭到破解,但是所謂的安全也是相對的,只要破解了SAM文件中的用戶信息和密碼,就可以輕松進(jìn)入系統(tǒng)。具體來講,SQL數(shù)據(jù)庫安全管理主要存在三個方面的問題,第一,口令較弱。在SA權(quán)限得不到限制的時(shí)候,整個操作系統(tǒng)就可能被不法分子所控制。第二,數(shù)據(jù)庫的漏洞逐漸凸顯。如果數(shù)據(jù)庫漏洞得不到及時(shí)修復(fù)的情況下,就容易遭到黑客的破壞和跟蹤。第三,注入式攻擊。SQL注入式攻擊是指攻擊者將SQL語句傳遞到應(yīng)用程序的過程,使程序中的SQL代碼不按程序設(shè)計(jì)人員的預(yù)定方式運(yùn)行。特別是在登錄時(shí),用戶常利用SQL語句中的特定字符創(chuàng)建一個恒等條件,從而不需要任何用戶名和密碼就可以訪問網(wǎng)站。隨著數(shù)據(jù)庫信息量的增大,除了安全管理外,SQL數(shù)據(jù)庫的性能優(yōu)化問題也必須受到重視,也只要這樣,才能提高SQL數(shù)據(jù)庫信息儲存和管理的效率。
2 SQL數(shù)據(jù)庫安全管理的具體策略
SQL數(shù)據(jù)庫的安全性可以通過設(shè)置和提升操作系統(tǒng)的安全性、sql serner的登錄安全性、數(shù)據(jù)庫的使用安全性以及使用數(shù)據(jù)對象的安全性等四個方面來實(shí)現(xiàn)。其一,操作系統(tǒng)的安全性。操作系統(tǒng)的安全性至關(guān)重要,它是連接計(jì)算機(jī)硬件、軟件及用戶的橋梁,與操作系統(tǒng)密切相關(guān)的最基本安全機(jī)制包括內(nèi)存保護(hù)機(jī)制、文件保護(hù)機(jī)制、鑒別機(jī)制、存取控制機(jī)制以及惡意程序防御機(jī)制等。操作系統(tǒng)的安全可以從隔離保護(hù)和分層保護(hù)兩個方面考慮。隔離保護(hù)依據(jù)實(shí)現(xiàn)的復(fù)雜程度分為物理上分離、時(shí)間上分離、邏輯上分離以及密碼上分離等;分層保護(hù)依據(jù)提供的安全性能的高低可以分為無保護(hù)、隔離保護(hù)、存取權(quán)限保護(hù)、權(quán)能共享保護(hù)以及共享或非共享保護(hù)等。其二,SQL Server服務(wù)器的安全性。SQLServer采用了集成Windows NT登錄和SQL Server登錄兩種方式。選擇和管理適當(dāng)?shù)腟QL Server登錄方式是SQL Server數(shù)據(jù)庫安全性的重要一環(huán)。選擇登錄模式的信息在安裝SQL Server數(shù)據(jù)庫時(shí)會進(jìn)行提示。其三,SQL Server數(shù)據(jù)庫安全設(shè)置。SQL 數(shù)據(jù)庫安全設(shè)置主要通過數(shù)據(jù)庫訪問權(quán)限控制和數(shù)據(jù)庫加密技術(shù)等方式實(shí)現(xiàn)。數(shù)據(jù)庫的訪問權(quán)限包括數(shù)據(jù)庫級的權(quán)限、表級的權(quán)限、列級的權(quán)限、過程級的權(quán)限。具體操作步驟在對象資管理器下的數(shù)據(jù)庫中,用鼠標(biāo)右鍵單擊pubs數(shù)據(jù)庫,在彈出的快捷菜單中選擇“屬性”菜單命令,打開“數(shù)據(jù)庫屬性”對話框,切換到“權(quán)限”選項(xiàng)卡,其次選擇數(shù)據(jù)庫用戶,在數(shù)據(jù)庫用戶權(quán)限中選擇“創(chuàng)建表”和“創(chuàng)建視圖”,在右側(cè)的格子中勾選“授予”復(fù)選框。數(shù)據(jù)庫加密也是SQL Server數(shù)據(jù)庫安全設(shè)置的重要手段。數(shù)據(jù)庫加密是保護(hù)數(shù)據(jù)在存儲和傳輸過程中不被竊取和修改的重要技術(shù)。數(shù)據(jù)庫明文信息經(jīng)過加密后就會形成密文,即便攻擊者通過非法手段數(shù)據(jù)也無法獲得明文信息,可以說,數(shù)據(jù)庫加密可以實(shí)現(xiàn)數(shù)據(jù)的保密性、完整性和安全性,防止非法用戶對數(shù)據(jù)庫信息的訪問。數(shù)據(jù)庫加密技術(shù)主要包括字段加密、秘鑰動態(tài)管理、日常數(shù)據(jù)管理以及防止非法復(fù)制等。此外,數(shù)據(jù)庫備份和恢復(fù)也是SQL Server數(shù)據(jù)庫安全設(shè)置的常用方法。對數(shù)據(jù)庫備份和恢復(fù)是為了在數(shù)據(jù)庫受到攻擊后能夠及時(shí)恢復(fù),保證數(shù)據(jù)的完整性。其四,SQL Server數(shù)據(jù)庫對象的安全性。數(shù)據(jù)庫對象的安全性是核查用戶權(quán)限的最后一道防線。SQL Server會自動把該數(shù)據(jù)庫對象的擁有權(quán)賦予該對象的創(chuàng)建者,也就是說,只有數(shù)據(jù)庫的創(chuàng)建者才擁有對數(shù)據(jù)庫對象的訪問權(quán)限,其他用戶若想訪問該數(shù)據(jù)庫的對象,必須事先由數(shù)據(jù)庫擁有者賦予該用戶特定的操作權(quán)限。
3 SQL數(shù)據(jù)庫性能優(yōu)化的路徑選擇
隨著數(shù)據(jù)庫數(shù)據(jù)量的增加,并發(fā)用戶數(shù)量的增多,系統(tǒng)常常會出現(xiàn)吞吐量降低、響應(yīng)時(shí)間長等問題。優(yōu)化SQL數(shù)據(jù)庫性能是保證SQL數(shù)據(jù)庫高效運(yùn)行的基礎(chǔ)。SQL數(shù)據(jù)庫性能受到多方面的影響和制約,包括數(shù)據(jù)庫配置、數(shù)據(jù)庫服務(wù)器性能、網(wǎng)絡(luò)環(huán)境配置以及應(yīng)用程序開發(fā)等。數(shù)據(jù)庫配置包括數(shù)據(jù)庫實(shí)例的配置和SQL語句優(yōu)化,直接決定了數(shù)據(jù)庫的性能優(yōu)劣;數(shù)據(jù)庫服務(wù)器性能是整個系統(tǒng)的核心,它的性能直接影響到整個數(shù)據(jù)庫系統(tǒng)性能;網(wǎng)絡(luò)是應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間的橋梁;應(yīng)用程序的開發(fā)特別是SQL語句的應(yīng)用、數(shù)據(jù)庫連接方式的選擇以及數(shù)據(jù)庫對象的使用情況都影響系統(tǒng)的執(zhí)行效率。基于此,SQL數(shù)據(jù)庫的優(yōu)化主要包括兩個方面,第一方面是查詢語句的優(yōu)化,另外一方面是數(shù)據(jù)庫服務(wù)器和網(wǎng)絡(luò)環(huán)境的優(yōu)化。作者認(rèn)為,在查詢語句優(yōu)化的過程中應(yīng)該遵循一些基本原則:盡量避免在列上進(jìn)行運(yùn)算,這樣會導(dǎo)致索引失效;僅列出要查詢的字段,這對速度不會有明顯影響,主要考慮節(jié)省內(nèi)存;limit的基數(shù)比較大時(shí)使用between;不要使用rand函數(shù)獲取多條隨機(jī)記錄。數(shù)據(jù)庫服務(wù)器性能主要通過兩種方式分析:仿真測試以及實(shí)際運(yùn)行的反饋分析。仿真測試可以通過一些專業(yè)的軟件測試工具,這對于沒有投入實(shí)際運(yùn)行的數(shù)據(jù)庫系統(tǒng)的性能分析具有重要的參考意義。另外,作為數(shù)據(jù)系統(tǒng)的管理者,應(yīng)該了解應(yīng)用程序的需要和數(shù)據(jù)的邏輯、物理結(jié)構(gòu),并在相互沖突的數(shù)據(jù)庫中權(quán)衡利弊。服務(wù)器性能主要與最大吞吐量、虛擬內(nèi)存的大小、服務(wù)器任務(wù)調(diào)度等有關(guān)。SQL Server服務(wù)器可以將后臺運(yùn)行的應(yīng)用程序設(shè)置成與前臺應(yīng)用程序相關(guān)的優(yōu)先級,以提升處理速度。此外,數(shù)據(jù)庫網(wǎng)絡(luò)環(huán)境的優(yōu)化也是極為重要的。數(shù)據(jù)庫網(wǎng)絡(luò)環(huán)境包括數(shù)據(jù)庫系統(tǒng)內(nèi)部使用的網(wǎng)絡(luò)環(huán)境和外部訪問數(shù)據(jù)庫的網(wǎng)路環(huán)境。數(shù)據(jù)庫的各個分區(qū)擁有自己的資源,各分區(qū)之間是并行的,因此各分區(qū)之間的數(shù)據(jù)交互,必須依靠高速網(wǎng)絡(luò)才能保證良好的環(huán)境。
參考文獻(xiàn)
[1]朱欣娟.基于VFP和SQL的數(shù)據(jù)庫技術(shù)及應(yīng)用[M].西安電子科技大學(xué)出版社,2004.
[2]甘潔凈.SQL數(shù)據(jù)庫的建立和管理[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(4).
作者簡介:李韓(1987-),女,漢族,山東菏澤市人,新疆交通職業(yè)技術(shù)學(xué)院助教,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。
孫永杰(1979-),男,漢族,安徽阜南人,烏市69010部隊(duì)上校。