• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺析數(shù)據(jù)庫的安全與優(yōu)化

      2010-08-15 00:49:04任莉
      關(guān)鍵詞:數(shù)據(jù)庫系統(tǒng)語句應(yīng)用程序

      任莉

      (南京工程高等職業(yè)學(xué)校,江蘇 南京 211135)

      淺析數(shù)據(jù)庫的安全與優(yōu)化

      任莉

      (南京工程高等職業(yè)學(xué)校,江蘇 南京 211135)

      數(shù)據(jù)庫系統(tǒng)的高性能設(shè)計且系統(tǒng)管理先進,并支持Windows圖形化管理工具以及本地和遠程的系統(tǒng)管理和配置。它強壯的事務(wù)處理功能,采用各種方法保證數(shù)據(jù)的完整性,與Internet的緊密集成和開放的系統(tǒng)結(jié)構(gòu),為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個出眾的數(shù)據(jù)庫平臺,因此數(shù)據(jù)庫的安全與優(yōu)化變得非常重要。

      數(shù)據(jù)庫 ;安全;存儲

      一、數(shù)據(jù)庫技術(shù)簡介

      隨著計算機技術(shù)與網(wǎng)絡(luò)通信技術(shù)的發(fā)展,數(shù)據(jù)庫技術(shù)已成為信息社會中對大量數(shù)據(jù)進行組織與管理的重要技術(shù)手段及軟件技術(shù),是網(wǎng)絡(luò)信息化管理系統(tǒng)的基礎(chǔ)。數(shù)據(jù)庫技術(shù)研究解決了計算機信息處理過程中大量數(shù)據(jù)有效地組織和存儲的問題,在數(shù)據(jù)庫系統(tǒng)中減少數(shù)據(jù)存儲冗余、實現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效地檢索數(shù)據(jù)和處理數(shù)據(jù)。

      二、數(shù)據(jù)庫安全設(shè)計

      維護數(shù)據(jù)庫系統(tǒng)的安全是一個長期的工作,是數(shù)據(jù)庫設(shè)計工作的延續(xù)和提高。通常數(shù)據(jù)庫安全的工作包括以下幾個方面:

      (1)數(shù)據(jù)庫的安全性。在數(shù)據(jù)庫運行階段,就應(yīng)該保證數(shù)據(jù)的安全,使數(shù)據(jù)庫不受有意或無意的侵犯。

      (2)數(shù)據(jù)庫性能的監(jiān)督、分析和改造。數(shù)據(jù)庫管理員必須利用系統(tǒng)提供的性能監(jiān)控和分析工具,經(jīng)常對數(shù)據(jù)庫的運行、存儲空間及響應(yīng)時間進行分析。

      (3)數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)。數(shù)據(jù)庫管理員要定期地把整個數(shù)據(jù)庫復(fù)制到磁盤或其他磁盤上保護起來。要指定不同的備份方案,保證一旦發(fā)生事故,能很快地將數(shù)據(jù)庫恢復(fù)到某種一致性的狀態(tài),盡量減少損失。

      (4)數(shù)據(jù)庫的重組織與重構(gòu)造。對數(shù)據(jù)庫進行重組可以調(diào)整系統(tǒng)在運行過程中由于不斷進行插入、刪除和修改操作而造成數(shù)據(jù)庫的物理存儲情況變差,數(shù)據(jù)的存儲效率降低、數(shù)據(jù)庫的性能下降的現(xiàn)象,使得系統(tǒng)的性能提高。

      三、數(shù)據(jù)庫性能優(yōu)化

      數(shù)據(jù)訪問是Web應(yīng)用程序最常需要用到的功能,對數(shù)據(jù)庫性能優(yōu)化,可提高整個系統(tǒng)的性能。

      1.數(shù)據(jù)庫鏈接

      操作數(shù)據(jù)庫最經(jīng)常應(yīng)用的操作就是創(chuàng)建數(shù)據(jù)庫鏈接,打開鏈接,最后在操作結(jié)束后關(guān)閉鏈接。這一系列操作過程是非常耗資源的,需要多次與數(shù)據(jù)庫交換信息以通過身份驗證。因此這些操作會嚴重影響應(yīng)用程序的性能。ASP.NET可以應(yīng)用鏈接池來對數(shù)據(jù)庫鏈接進行操作,減少打開、關(guān)閉數(shù)據(jù)庫操作對性能的影響。當開發(fā)者創(chuàng)建數(shù)據(jù)庫鏈接時,系統(tǒng)將為其創(chuàng)建鏈接池,從鏈接池中返回開發(fā)者要求的數(shù)據(jù)庫鏈接。當開發(fā)者將這個鏈接關(guān)閉時,系統(tǒng)收回鏈接,將其放回鏈接池,等下一次對該鏈接的請求。但是鏈接池的大小是有限制的,如果超過鏈接池的最大限度后繼續(xù)要求創(chuàng)建鏈接,將會影響性能。因此,要盡量推遲打開數(shù)據(jù)庫鏈接,在數(shù)據(jù)操作完成后及時關(guān)閉數(shù)據(jù)庫鏈接,從而減少數(shù)據(jù)庫鏈接打開的時間,避免超出鏈接限制的情況出現(xiàn)。

      2.數(shù)據(jù)庫查詢

      在數(shù)據(jù)操作中,數(shù)據(jù)查詢操作是非常普通的操作。提高數(shù)據(jù)查詢操作的性能將對提高應(yīng)用程序性能有很大的幫助。ASP.NET提供了多種方式來使用SQL語言對數(shù)據(jù)庫進行操作,下面對這些方法進行簡單的介紹。

      直接生成SQL語句字符串。應(yīng)用SqlCommand對象的CommandText屬性,直接生成SQL語句字符串進行操作,下面的代碼演示了該方式的數(shù)據(jù)庫操作:

      SqlCommand comm=new SqlCommand(SqlName,MyConnection);

      Stringsql=“Select*Fromstu”;

      sql=sql+“where(stuID=”“+txtstu.Text+”“)”;

      comm.CommandText=sql;

      對于這種查詢命令,SQLServer在應(yīng)用時需要每次對其進行編譯,因此性能較差而且還會帶來其他一些安全應(yīng)用問題。

      使用帶有參數(shù)的SQL命令。這種應(yīng)用的實現(xiàn)效果相同。下面為其應(yīng)用程序。

      SqlCommandComm=new SqlCommand(SqlName,My-Connection);

      StringSql=“Select*FromstuWherestuID=@stuID”;

      SqkParameterParaID=newSqlParameter(“@stu”,SqlDbType.Int,4);

      ParaID=n,Value=3;

      Comm.Parameters.Add(ParaID);

      Comm.CommandText=Sql;

      使用第二種方式對數(shù)據(jù)庫進行查詢,SQLServer只對命令編譯一次,對于不同的參數(shù)重復(fù)使用,節(jié)省了服務(wù)器的應(yīng)用效能,提供了數(shù)據(jù)庫服務(wù)器的性能。

      3.使用儲存過程

      存儲過程是一系列被查詢處理器預(yù)解析和優(yōu)化的SQL命令,這些命令會被存儲起來,以便需要時得到快速的執(zhí)行。存儲過程在應(yīng)用時具有一次編譯多次應(yīng)用的效果,而且存儲過程獨立于程序,編譯修改和維護。并且存儲過程還可以減少網(wǎng)絡(luò)中的數(shù)據(jù)傳輸,進一步提高網(wǎng)絡(luò)應(yīng)用性能。多條SQL語句的查詢操作只需要由一個存儲過程就能夠?qū)崿F(xiàn),可以避免多次向數(shù)據(jù)庫服務(wù)器傳送數(shù)據(jù)。

      四、防注入攻擊技術(shù)

      SQL注入是從正常的WWW端口訪問,而且表面看起來跟一般的Web頁面訪問沒什么區(qū)別,在代碼使用存儲過程中,而這些存儲過程作為包含未篩選的用戶輸入的字符串來傳遞時,會發(fā)生SQL注入。SQL注入可能導(dǎo)致攻擊者使用應(yīng)用程序登錄在數(shù)據(jù)庫中執(zhí)行命令。如果應(yīng)用程序使用特權(quán)過高的用戶鏈接到數(shù)據(jù)庫,這種問題會變得很嚴重。在某些表單中,用戶輸入的內(nèi)容直接用來構(gòu)造動態(tài)SQL命令,或者作為存儲過程的輸入?yún)?shù),這些表單特別容易受到SQL注入的攻擊。

      SQLServer是一個功能強大的數(shù)據(jù)庫系統(tǒng),與操作系統(tǒng)也有緊密的聯(lián)系,這給開發(fā)者帶來了很大的方便,但另一方面,也為注入者提供了一個跳板,我們先來看看幾個具體的例子:

      (1)http://localhost:2514/Web/Admin/InStoreStat.aspx?billType=30;exec

      master..xp_cmdshell“net user name password/add”______

      分號;在SQL Server中表示隔開前后兩句語句,——表示后面的語句為注釋,所以,這句語句在SQL Server中將被分成兩句執(zhí)行,先是Select出ID=1的記錄,然后執(zhí)行存儲過程xp_cmdshell,這個存儲過程用于調(diào)用系統(tǒng)命令,于是,用net命令新建了用戶名為name、密碼為password的windows的賬號,接著:

      (1)http://localhost:2514/Web/Admin/InStoreStat.aspx?billType=30;exec

      master…xp_cmdshell“net localgroup name administrators/add”——

      將新建的賬號name加入管理員組,現(xiàn)在你已經(jīng)拿到了系統(tǒng)最高權(quán)限,當然,這種方法只適用于用sa鏈接數(shù)據(jù)庫的情況,否則是沒有權(quán)限調(diào)用xp-cmdshell的。

      (3)http://localhost:2514/Web/Admin/InStoreStat.aspx?billType=30;

      and db-name()>0 and user>0,作用是獲取鏈接用戶名,db-name()是另一個系統(tǒng)變量,返回的是連接的數(shù)據(jù)庫名。

      (4)http://localhost:2514/Web/Admin/InStoreStat.aspx?billType=30;backup

      database數(shù)據(jù)庫名 to disk=’c:inetpubwwwroot1.db’;——

      在(3)中可以得到數(shù)據(jù)庫名,加上某些IIS出錯暴露出的絕對路徑,將數(shù)據(jù)庫備份到Web目錄下面,再用HTTP把整個數(shù)據(jù)庫就完完整整地下載回來,所有的管理員及用戶密碼都一覽無佘。

      從以上幾點可以看出,SQL注入攻擊對我們系統(tǒng)的危害有多大。許多網(wǎng)站程序在編寫時,沒有對用戶輸入的合法性進行判斷或者程序中本身的變量處理不當,使應(yīng)用程序存在安全隱患。這樣,用戶就可以提交一段數(shù)據(jù)庫查詢的代碼,根據(jù)程序返回的結(jié)果,獲得一些敏感的信息或者控制整個服務(wù)器,于是SQL注入就發(fā)生了。因此數(shù)據(jù)庫管理員應(yīng)養(yǎng)成查看IIS日志的習(xí)慣,對程序過濾嚴格審查,認真檢查參數(shù),防止SQL注入攻擊的發(fā)生。

      [1]戚建妙.SQL注入攻擊與數(shù)據(jù)庫安全[J].有線電視技術(shù),2004,(23).

      TN

      A

      1673-0046(2010)11-0173-02

      猜你喜歡
      數(shù)據(jù)庫系統(tǒng)語句應(yīng)用程序
      重點:語句銜接
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      電子測試(2018年14期)2018-09-26 06:04:24
      精彩語句
      微細銑削工藝數(shù)據(jù)庫系統(tǒng)設(shè)計與開發(fā)
      實時數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)安全采集方案
      核反應(yīng)堆材料數(shù)據(jù)庫系統(tǒng)及其應(yīng)用
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      三星電子將開設(shè)應(yīng)用程序下載商店
      大埔县| 玉溪市| 乐东| 化德县| 莫力| 宝清县| 康马县| 门头沟区| 滁州市| 峨眉山市| 昌吉市| 闻喜县| 瑞昌市| 县级市| 民丰县| 顺平县| 乾安县| 永修县| 桦南县| 长宁区| 应城市| 遂平县| 永春县| 霞浦县| 临颍县| 铜鼓县| 洪湖市| 汉寿县| 莒南县| 海林市| 昌平区| 民乐县| 奉节县| 山阴县| 海淀区| 安龙县| 宁国市| 鹿泉市| 广安市| 沛县| 静乐县|