第一篇:基于Java EE的Web系統(tǒng)中數(shù)據(jù)庫設(shè)計(jì)技術(shù)研究論文
摘 要:數(shù)據(jù)庫設(shè)計(jì)是Web系統(tǒng)設(shè)計(jì)中的核心內(nèi)容之一,也是Web系統(tǒng)實(shí)現(xiàn)的基礎(chǔ),是在特定的數(shù)據(jù)庫模式下來構(gòu)建數(shù)據(jù)庫應(yīng)用系統(tǒng),使之能較好地存儲(chǔ)數(shù)據(jù),滿足用戶的實(shí)際應(yīng)用需求。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的優(yōu)劣對(duì)應(yīng)用系統(tǒng)的使用效率具有較大的影響。一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫結(jié)構(gòu)不但能很好的保證數(shù)據(jù)完整性與一致性,而且還可以有效的提高數(shù)據(jù)存儲(chǔ)效率。
關(guān)鍵詞:數(shù)據(jù)庫設(shè)計(jì);Web系統(tǒng);數(shù)據(jù)庫概念;邏輯設(shè)計(jì)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)成為了人們工作和生活不可或缺的一部分。網(wǎng)絡(luò)技術(shù)的應(yīng)用使得計(jì)算機(jī)之間通信、信息共享成為可能,而數(shù)據(jù)庫技術(shù)在Web系統(tǒng)中的應(yīng)用則為人們提供了數(shù)據(jù)存儲(chǔ)、信息檢索、信息分析等功能,從而使得工作更高效地進(jìn)行。
在Web系統(tǒng)設(shè)計(jì)的過程中,數(shù)據(jù)庫設(shè)計(jì)毋庸置疑占有重要地位,數(shù)據(jù)庫設(shè)計(jì)是Web系統(tǒng)實(shí)現(xiàn)的基礎(chǔ),也是Web系統(tǒng)設(shè)計(jì)的關(guān)鍵環(huán)節(jié)之一,是在特定數(shù)據(jù)庫模式下來構(gòu)建數(shù)據(jù)庫應(yīng)用系統(tǒng),使之能較好地存儲(chǔ)數(shù)據(jù),滿足用戶的實(shí)際應(yīng)用需求。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的優(yōu)劣對(duì)應(yīng)用系統(tǒng)的使用效率有較大影響。一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫結(jié)構(gòu)不但能很好的保證數(shù)據(jù)完整性與一致性,還可以有效提高數(shù)據(jù)存儲(chǔ)效率。同時(shí)在進(jìn)行Web系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,還要做到系統(tǒng)開銷小、易于管理和維護(hù),后續(xù)系統(tǒng)開發(fā)方便、快捷、易擴(kuò)充等。筆者以高職院校課程成績管理系統(tǒng)中的數(shù)據(jù)庫設(shè)計(jì)為例進(jìn)行分析研究。課程成績管理系統(tǒng)中數(shù)據(jù)庫設(shè)計(jì)的方法與要求
數(shù)據(jù)庫設(shè)計(jì)即是龐大的系統(tǒng)工程項(xiàng)目,也是多學(xué)科技術(shù)綜合體現(xiàn)。通常有屬性主導(dǎo)型和實(shí)體主導(dǎo)型兩種方法,屬性主導(dǎo)型主要是從歸納數(shù)據(jù)庫應(yīng)用的屬性出發(fā),在歸并數(shù)據(jù)實(shí)體時(shí)維持屬性間的函數(shù)依賴關(guān)系;實(shí)體主導(dǎo)型則先尋找對(duì)數(shù)據(jù)庫應(yīng)用有意義的實(shí)體開始,通過定義屬性來定義實(shí)體。高職院校課程成績管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)是根據(jù)學(xué)院的實(shí)際情況要求,以數(shù)據(jù)庫設(shè)計(jì)理論為依據(jù),來設(shè)計(jì)數(shù)據(jù)庫的全局邏輯結(jié)構(gòu)和與用戶的局部邏輯結(jié)構(gòu)。既要結(jié)合高職院校教學(xué)運(yùn)行需求的實(shí)際情況,也要充分考慮到學(xué)院規(guī)模和教學(xué)管理的發(fā)展變化狀況及學(xué)院各職能部門的各級(jí)管理要求。系統(tǒng)中具體的實(shí)體主要有教師實(shí)體、學(xué)生實(shí)體、課程實(shí)體、班級(jí)實(shí)體和成績實(shí)體等。數(shù)據(jù)庫編碼設(shè)計(jì)
數(shù)據(jù)庫編碼設(shè)計(jì)是指對(duì)所需處理事務(wù)對(duì)象的代碼化設(shè)計(jì),以方便計(jì)算機(jī)進(jìn)行信息處理。根據(jù)當(dāng)前高職院校教學(xué)運(yùn)行的實(shí)際情況,在進(jìn)行編碼的時(shí)候可以采用連續(xù)碼、組群碼等方法來進(jìn)行。連續(xù)碼主要是采用阿拉伯?dāng)?shù)字進(jìn)行展開,連續(xù)編號(hào),一項(xiàng)一個(gè)。如對(duì)學(xué)生的學(xué)號(hào)進(jìn)行編碼。組群碼主要是用特定號(hào)碼組來構(gòu)成一個(gè)特定的項(xiàng)目群,使用連續(xù)數(shù)字代碼來表示具體的項(xiàng)目的。如高職院校中的系部,就可以用01、02等來分別表示不同的系部,如01代表信息系,02代表建筑系等。學(xué)生學(xué)號(hào)編碼可以采用九位代碼進(jìn)行標(biāo)識(shí),其中前四位代表入學(xué)年級(jí),第五位代表學(xué)習(xí)層次,后四位代表學(xué)生注冊(cè)報(bào)道系統(tǒng)中的順序。如201411640,即表示該生為2014年入學(xué)的第1640個(gè)報(bào)道注冊(cè)的大專學(xué)生。數(shù)據(jù)庫概念設(shè)計(jì)
概念設(shè)計(jì)是現(xiàn)實(shí)世界與計(jì)算機(jī)世界的中介,既獨(dú)立于數(shù)據(jù)庫的邏輯結(jié)構(gòu),也獨(dú)立于數(shù)據(jù)庫管理系統(tǒng)。高職院校課程成績管理系統(tǒng)中涉及到的數(shù)據(jù)實(shí)體有:系統(tǒng)管理員、學(xué)生、教師、課程、班級(jí)、學(xué)生課程與成績等。根據(jù)對(duì)系統(tǒng)功能模塊設(shè)計(jì)分析和實(shí)體與屬性的關(guān)系,課程與成績管理系統(tǒng)的E-R圖,見圖1。
圖1 課程與成績管理系統(tǒng)的E-R圖數(shù)據(jù)庫邏輯設(shè)計(jì)
基于上面分析,通過MySQL輔助圖形化界面工具SQLyog來進(jìn)行數(shù)據(jù)庫設(shè)計(jì),涉及到的數(shù)據(jù)表主要有以下六個(gè):系統(tǒng)管理員表(Admin)(用戶名,姓名,密碼),主要用來存放系統(tǒng)管理員的基本信息;教師信息表(Teacher)(教師編號(hào),教師姓名,教師密碼,所屬系部,職稱,專兼職,其他信息),主要用來存放任課教師的基本信息;學(xué)生信息表(Student)(學(xué)生學(xué)號(hào),姓名,密碼,性別,籍貫,系部,專業(yè),教學(xué)班,聯(lián)系電話,電子郵箱),主要用來存放學(xué)生的基本信息;課程信息表(Course)(課程編號(hào),課程名稱,學(xué)分?jǐn)?shù),課程性質(zhì),開出系部),主要用來存放學(xué)期開設(shè)課程的基本信息;班級(jí)信息表(Class)(教學(xué)班編號(hào),教學(xué)班名稱,任課教師,課程,開課地點(diǎn),開課時(shí)間段),主要用來存放課程教學(xué)班的基本信息;學(xué)生課程與成績表(Enrol)(學(xué)生學(xué)號(hào),教學(xué)班級(jí),是否接受,成績,學(xué)分),主要用來存放學(xué)生所選擇的課程與成績信息。結(jié) 語
在基于Java EE的Web系統(tǒng)中,當(dāng)數(shù)據(jù)庫表設(shè)計(jì)好后,還要進(jìn)行映射文件創(chuàng)建和持久化類創(chuàng)建,創(chuàng)建的映射文件擴(kuò)展名為.xml,主要是通過Hibernate輔助工具自動(dòng)生成。通過以上分析可知,此數(shù)據(jù)庫設(shè)計(jì)不但可以很好的保證數(shù)據(jù)完整性與一致性,有效的提高數(shù)據(jù)存儲(chǔ)效率,還能做到系統(tǒng)開銷小、易于管理和維護(hù),后續(xù)系統(tǒng)開發(fā)方便、快捷、易擴(kuò)充等。
參考文獻(xiàn)
[1]孫未未.數(shù)據(jù)庫處理——基礎(chǔ)、設(shè)計(jì)與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2011.[2]熊才權(quán).數(shù)據(jù)庫原理與應(yīng)用[M].湖北:華中科
第二篇:數(shù)據(jù)庫防火墻技術(shù)研究
數(shù)據(jù)庫防火墻技術(shù)研究
數(shù)據(jù)庫防火墻是繼防火墻、下一代防火墻等網(wǎng)關(guān)類安全產(chǎn)品之后,專門針對(duì)于數(shù)據(jù)存儲(chǔ)的核心介質(zhì)——數(shù)據(jù)庫的一款安全防護(hù)產(chǎn)品。
關(guān)于數(shù)據(jù)庫安全可以分為兩個(gè)層面,一方面是來自于外部的威脅,比如說來自黑客的攻擊、非法訪問等,第三方運(yùn)維人員的不當(dāng)操作和非法入侵;另外一部分是來自于內(nèi)部的威脅。數(shù)據(jù)庫防火墻部署于數(shù)據(jù)庫之前。必須通過該系統(tǒng)才能對(duì)數(shù)據(jù)庫進(jìn)行訪問或管理。數(shù)據(jù)庫防火墻除提供網(wǎng)絡(luò)防火墻的基本隔離功能以外,還提供獨(dú)立的連接授權(quán)管理、訪問授權(quán)管理、攻擊保護(hù)、連接監(jiān)控、審計(jì)等功能。部署該產(chǎn)品以達(dá)到牢牢控制數(shù)據(jù)庫入口,提高數(shù)據(jù)應(yīng)用安全性的目的。目前,國內(nèi)首款專業(yè)數(shù)據(jù)庫防火墻產(chǎn)品是安華金和數(shù)據(jù)庫防火墻DBFirwall。
數(shù)據(jù)庫防火墻的產(chǎn)品價(jià)值
1、屏蔽直接訪問數(shù)據(jù)庫的通道
數(shù)據(jù)庫防火墻部署介于數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器之間,屏蔽直接訪問的通道,防止數(shù)據(jù)庫隱通道對(duì)數(shù)據(jù)庫的攻擊。
2、二次認(rèn)證
應(yīng)用程序?qū)?shù)據(jù)庫的訪問,必須經(jīng)過數(shù)據(jù)庫防火墻和數(shù)據(jù)庫自身兩層身份認(rèn)證。
3、攻擊保護(hù)
實(shí)時(shí)檢測(cè)用戶對(duì)數(shù)據(jù)庫進(jìn)行的SQL注入和緩沖區(qū)溢出攻擊。并報(bào)警或者阻止攻擊行為,同時(shí)詳細(xì)的審計(jì)下攻擊操作發(fā)生的時(shí)間、來源IP、登錄數(shù)據(jù)庫的用戶名、攻擊代碼等詳細(xì)信息。
4、安全審計(jì)
系統(tǒng)能夠?qū)徲?jì)對(duì)數(shù)據(jù)庫服務(wù)器的訪問情況。包括用戶名、程序名、IP地址、請(qǐng)求的數(shù)據(jù)庫、連接建立的時(shí)間、連接斷開的時(shí)間、通信量大小、執(zhí)行結(jié)果等等信息。并提供靈活的回放日志查詢分析功能,并可以生存報(bào)表。
5、防止外部黑客攻擊威脅
黑客利用Web應(yīng)用漏洞,進(jìn)行SQL注入;或以Web應(yīng)用服務(wù)器為跳板,利用數(shù)據(jù)庫自身漏洞攻擊和侵入。通過限定更新和刪除影響行、限定無Where的更新和刪除操作、限定drop、truncate等高危操作避免大規(guī)模損失。數(shù)據(jù)庫防火墻防護(hù)能力
數(shù)據(jù)庫防火墻產(chǎn)品具有主動(dòng)防護(hù)能力。針對(duì)對(duì)數(shù)據(jù)庫的風(fēng)險(xiǎn)行為和違規(guī)操作做相應(yīng)的防護(hù)與告警。分析當(dāng)前各類數(shù)據(jù)庫所受威脅和防火墻的應(yīng)對(duì)防護(hù)能力包括如下幾項(xiàng)功能:
防御數(shù)據(jù)庫漏洞與SQL注入
威脅:外部黑客攻擊,黑客利用Web應(yīng)用漏洞,進(jìn)行SQL注入;或以Web應(yīng)用服務(wù)器為跳板,利用數(shù)據(jù)庫自身漏洞攻擊和侵入。
防護(hù):通過虛擬補(bǔ)丁技術(shù)捕獲和阻斷漏洞攻擊行為,通過SQL注入特征庫捕獲和阻斷SQL注入行為。
防止內(nèi)部高危操作
威脅:系統(tǒng)維護(hù)人員、外包人員、開發(fā)人員等,擁有直接訪問數(shù)據(jù)庫的權(quán)限,有意無意的高危操作對(duì)數(shù)據(jù)造成破壞。
防護(hù):通過限定更新和刪除影響行、限定無Where的更新和刪除操作、限定drop、truncate等高危操作避免大規(guī)模損失。
防止敏感數(shù)據(jù)泄漏
威脅:黑客、開發(fā)人員可以通過應(yīng)用批量下載敏感數(shù)據(jù),內(nèi)部維護(hù)人員遠(yuǎn)程或本地批量導(dǎo)出敏感數(shù)據(jù)。
防護(hù):限定數(shù)據(jù)查詢和下載數(shù)量、限定敏感數(shù)據(jù)訪問的用戶、地點(diǎn)和時(shí)間。
審計(jì)追蹤非法行為
威脅:業(yè)務(wù)人員在利益誘惑下,通過業(yè)務(wù)系統(tǒng)提供的功能完成對(duì)敏感信息的訪問,進(jìn)行信息的售賣和數(shù)據(jù)篡改。
防護(hù):提供對(duì)所有數(shù)據(jù)訪問行為的記錄,對(duì)風(fēng)險(xiǎn)行為進(jìn)行SysLog、郵件、短信等方式的告警,提供事后追蹤分析工具。
數(shù)據(jù)庫通訊協(xié)議解析
各類數(shù)據(jù)庫防火墻產(chǎn)品,對(duì)于數(shù)據(jù)庫風(fēng)險(xiǎn)行為和違規(guī)操作進(jìn)行安全防護(hù)的基礎(chǔ)。都來自于數(shù)據(jù)庫通訊協(xié)議的解析。通訊協(xié)議解析的越精準(zhǔn),數(shù)據(jù)庫的防護(hù)工作越周密安全。換言之,數(shù)據(jù)庫通訊協(xié)議解析的強(qiáng)弱是評(píng)價(jià)一款數(shù)據(jù)庫防火墻產(chǎn)品優(yōu)略的關(guān)鍵。下面就數(shù)據(jù)庫通訊協(xié)議解析原理做一下相關(guān)介紹。
從數(shù)據(jù)通訊交互來講,數(shù)據(jù)是以包(Packet)的形式在網(wǎng)絡(luò)中進(jìn)行傳輸?shù)摹R粋€(gè)包通常由2大部分組成:控制部分(metadata)和數(shù)據(jù)部分。從包的結(jié)構(gòu)中,可以得到數(shù)據(jù)的“源地址(Source Address)”和“目標(biāo)地址(Destination Address)”,“源端口(Source Port)”和“目標(biāo)端口(Destination Port)”。防火墻正式基于這些信息對(duì)數(shù)據(jù)庫進(jìn)行防護(hù)。當(dāng)一個(gè)包(如來自數(shù)據(jù)庫客戶端)通過防火墻時(shí),防火墻會(huì)基于一定的規(guī)則對(duì)該包進(jìn)行檢查,如檢查包的發(fā)送者是不是合法的IP(如合法的數(shù)據(jù)庫客戶端),包的目標(biāo)是不是特定的數(shù)據(jù)庫服務(wù)器?如果檢查通過,包會(huì)被允許穿過防火墻。如果檢查未通過,則該包會(huì)被丟棄(Drop)(發(fā)送者什么都不知道,猶如石沉大海),或者會(huì)給發(fā)送者返回(反饋)錯(cuò)誤信息(reject)。我們把前面描述的這種防御方式叫“包過濾”。“包過濾”可工作在OSI模型
(見下圖)的最底下3層或者4層。
“包過濾”又可分為“有連接(stateful)”和“無連接(stateless)”兩種。“有連接(stateful)”是指防火墻會(huì)記錄通過的連接狀態(tài)信息,維護(hù)相應(yīng)的連接狀態(tài)數(shù)據(jù)庫,基于同一連接的數(shù)據(jù)包可免于重復(fù)檢查,這樣將提高數(shù)據(jù)包傳輸效率,“無連接(stateless)”是對(duì)每一個(gè)數(shù)據(jù)包進(jìn)行檢查,通常意義上會(huì)導(dǎo)致網(wǎng)絡(luò)響應(yīng)緩慢,這兩種方式各有優(yōu)缺點(diǎn)。
安華金和數(shù)據(jù)庫防火墻(DBFirewall)實(shí)現(xiàn)了對(duì)主流數(shù)據(jù)庫類型通訊協(xié)議的“雙向、全協(xié)議解析”,重要的解析內(nèi)容包括:SQL語句、參數(shù)化語句句柄、SQL參數(shù)、應(yīng)答結(jié)果信息、結(jié)果集結(jié)構(gòu)信息、結(jié)果集數(shù)據(jù)等。
SQL語句的解析和表達(dá)是實(shí)現(xiàn)對(duì)SQL語句攻擊行為控制的關(guān)鍵;SQL注入的檢查、應(yīng)用sql語句的放行,都依賴于sql語句的解析和特征捕獲。傳統(tǒng)的技術(shù),往往采用正則表達(dá)式的方式,但該方式存在巨大的技術(shù)缺陷,一是正則匹配過程性能地下,二是對(duì)于復(fù)雜的參數(shù)情況容易產(chǎn)生匹配錯(cuò)誤,三是通過語句的變體容易欺騙。
DBFirewall為了有效撲獲SQL語句的特征,以及為了快速地對(duì)SQL語句進(jìn)行策略判定,以實(shí)現(xiàn)數(shù)據(jù)庫防火墻的高效處理,提供了專利性的SQL語法特征技術(shù),實(shí)現(xiàn)了對(duì)SQL語句的重寫。
SQL重寫是在不改變?cè)璖QL語句的語義的情況下,DBFirewall對(duì)捕捉到的SQL語句進(jìn)行重寫,替換原語句中的參數(shù)值。
SQL重寫是一個(gè)抽象的過程,便于管理和操作。SQL重寫包括以下幾個(gè)方面: ? 除了單雙引號(hào)內(nèi)的內(nèi)容,小寫字母全部變?yōu)榇髮懽帜福?? 準(zhǔn)確區(qū)分正負(fù)號(hào)和加減號(hào);
? 將SQL語句中的數(shù)值、單引號(hào)引起的字符串各自重寫為統(tǒng)一的占位符;
? 將注釋、換行重寫為空格,將連續(xù)的空格合并為1個(gè),去掉運(yùn)算符兩端等不影響語義的空格 以如下SQL語句為例:
Select +0.25 * money,sum(id)From “testdb”.accounts
Where id = ' G1792 ' or name!=‘’/*this message come from Lisa*/ XSeure-DBF在SQL重寫的基礎(chǔ)上,根據(jù)SQL語法,對(duì)SQL進(jìn)行了多級(jí)分類。SQL多級(jí)分類是將具有相同操作行為的不同語句合并為一類,為SQL信息的查看和策略的定制提供了便利,且SQL分類編碼操作后,易于后續(xù)的計(jì)算、操作和存儲(chǔ)。
SQL分類主要分為三級(jí),分類的方向由細(xì)到粗,即二級(jí)分類是在一級(jí)分類的基礎(chǔ)上進(jìn)行的,三級(jí)分類是在二級(jí)的基礎(chǔ)上進(jìn)行的。
? 一級(jí)分類
基于目前的SQL重寫,即替換所有的可變“參數(shù)”數(shù)據(jù)為固定的“參數(shù)(例如,#)”,并且將所有謂詞全部大寫化(格式化為大寫字母)等。也就是說,一級(jí)分類的輸出是經(jīng)過“重寫”后的SQL語句。? 二級(jí)分類
在一級(jí)分類的基礎(chǔ)上,對(duì)所有的謂詞、函數(shù)、比較運(yùn)算符進(jìn)行編碼后,生成摘要的字符串編碼,該編碼就是SQL的二級(jí)分類碼。? 三級(jí)分類 在二級(jí)分類的基礎(chǔ)上,對(duì)所有的謂詞比較運(yùn)算符進(jìn)行編碼后,生成的摘要字符串編碼,該編碼就是SQL三級(jí)分類碼。
根據(jù)SQL分類的原則,假如有如下SQL語句:
1:SELECT salary*1.5 FROM employees WHERE job_id ='PU_CLERK';2:SELECT salary*2 FROM employees WHERE job_id='SA_MAN';3:SELECT employee_id FROM department WHERE department_name = 'HR';4:SELECT department_id FROM employees WHERE salary <5000;5:SELECT sum(salary)FROM employees WHERE job_id ='PU_CLERK';6:SELECT max(salary)FROM employees WHERE job_id='PU_CLERK';那么按照分類碼,DBFirewall看到的分析SQL,由三級(jí)到一級(jí)如下呈現(xiàn): ? SELECT FROM WHERE = ? SELECT FROM WHERE = ? SELECT SALARY*0 FROM EMPLOYEES WHERE JOB_ID='#' ? SELECT EMPLOYEE_ID FROM DEPARTMENT WHERE DEPARTMENT_NAME='#' ? SELECT SUM FROM WHERE = ? SELECT SUM(SALARY)FROM EMPLOYEES WHERE JOB_ID='#‘ ? SELECT MIN FROM WHERE = ? SELECT MIN(SALARY)FROM EMPLOYEES WHERE JOB_ID='#‘
? SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE SALARY<0 ? SELECT MIN FROM WHERE < SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE SALARY<0 SQL語句格式化重寫后的結(jié)果為:
SELECT 0*MONEY,SUM(ID)FROM “testdb”.ACCOUNTS WHERE ID=’#’ OR NAME!=’’ 正式基于精準(zhǔn)的數(shù)據(jù)庫通訊協(xié)議解析,數(shù)據(jù)庫防火墻才能對(duì)數(shù)據(jù)庫進(jìn)行周密的防護(hù)。黑白名單機(jī)制
數(shù)據(jù)庫防火墻進(jìn)行數(shù)據(jù)庫防護(hù)的過程中,除了利用數(shù)據(jù)通訊協(xié)議解析的信息設(shè)置相應(yīng)的風(fēng)險(xiǎn)攔截和違規(guī)sql操作預(yù)定義策略以外,常用的防護(hù)方式也包括通過學(xué)習(xí)模式以及SQL語法分析構(gòu)建動(dòng)態(tài)模型,形成SQL白名單和SQL黑名單,對(duì)符合SQL白名單語句放行,對(duì)符合SQL黑名單特征語句阻斷。
安華金和數(shù)據(jù)庫防火墻除了通過制定黑白名單和相應(yīng)的策略規(guī)則之外,配合利用禁止,許可以及禁止+許可的混合模式規(guī)則對(duì)數(shù)據(jù)庫進(jìn)行策略設(shè)置,從而對(duì)數(shù)據(jù)庫進(jìn)行防護(hù)。
許可規(guī)則禁止規(guī)則優(yōu)先禁止規(guī)則放行阻止放行阻止 “禁止規(guī)則”負(fù)責(zé)定義系統(tǒng)需要阻止的危險(xiǎn)數(shù)據(jù)庫訪問行為,所有被“禁止規(guī)則”命中的行為將被阻斷,其余的行為將被放行。
“許可規(guī)則”負(fù)責(zé)定義應(yīng)用系統(tǒng)的訪問行為和維護(hù)工作的訪問行為,通過“許可規(guī)則”使這些行為在被“禁止規(guī)則”命中前被放行。
“優(yōu)先禁止規(guī)則”負(fù)責(zé)定義高危的數(shù)據(jù)庫訪問行為,這些策略要先于“許可規(guī)則”被判斷,命中則阻斷。數(shù)據(jù)庫漏洞防護(hù)
在數(shù)據(jù)庫的防護(hù)過程中,除了對(duì)數(shù)據(jù)庫登錄限定,惡意sql操作攔截,以及批量數(shù)據(jù)刪改進(jìn)行安全防護(hù)以外。數(shù)據(jù)庫自身存在的一些漏洞缺陷所引發(fā)的安全隱患,也在數(shù)據(jù)庫防火墻的防護(hù)范圍之內(nèi)。對(duì)于這些風(fēng)險(xiǎn)行為進(jìn)行周密而嚴(yán)謹(jǐn)?shù)姆雷o(hù)也是數(shù)據(jù)庫防火墻價(jià)值體現(xiàn)的重點(diǎn)項(xiàng)。
之前在CVE上公開了2000多個(gè)數(shù)據(jù)庫安全漏洞,這些漏洞給入侵者敞開了大門。數(shù)據(jù)庫廠商會(huì)定期推出數(shù)據(jù)庫漏洞補(bǔ)丁。數(shù)據(jù)庫補(bǔ)丁雖然能在一定程度上彌補(bǔ)數(shù)據(jù)庫漏洞,降低數(shù)據(jù)庫遭受惡意攻擊的風(fēng)險(xiǎn)度。但是數(shù)據(jù)庫補(bǔ)丁也存在許多適用性問題。主要包括以下三點(diǎn):
? 漏洞補(bǔ)丁針對(duì)性高,修補(bǔ)范圍存在局限性。
包發(fā)布周期過長,存在數(shù)據(jù)泄露真空期 ? 補(bǔ)丁修復(fù)過程中存在兼容性隱患
? 數(shù)據(jù)庫補(bǔ)丁漏洞修補(bǔ)周期長,風(fēng)險(xiǎn)大,消耗大量資源
區(qū)別于oracle防火墻對(duì)虛擬補(bǔ)丁技術(shù)的空白,安華金和數(shù)據(jù)庫防火墻和McAfee數(shù)據(jù)庫防火墻功能點(diǎn)上都添加了數(shù)據(jù)庫漏洞防護(hù)技術(shù),以完善產(chǎn)品,力求達(dá)到對(duì)數(shù)據(jù)庫的全面防護(hù)。
虛擬補(bǔ)丁技術(shù)可以在無需修補(bǔ)DBMS內(nèi)核的情況下保護(hù)數(shù)據(jù)庫。它在數(shù)據(jù)庫外創(chuàng)建了一個(gè)安全層,從而不用打數(shù)據(jù)庫廠商的補(bǔ)丁,也不需要停止服務(wù)和回歸測(cè)試。通過監(jiān)控所有數(shù)據(jù)庫活動(dòng),并用監(jiān)控?cái)?shù)據(jù)與保護(hù)規(guī)則相比較,從而發(fā)現(xiàn)攻擊企圖。當(dāng)比較結(jié)果與規(guī)則匹配時(shí),就發(fā)出一個(gè)警報(bào),并在指定的時(shí)間內(nèi)終止可疑會(huì)話、操作程序或隔離用戶,直到這個(gè)可疑的活動(dòng)被審查通過。
安華金和數(shù)據(jù)庫防火墻的漏洞防護(hù)技術(shù)——虛擬補(bǔ)丁通過控制受影響的應(yīng)用程序的輸入或輸出,來改變或消除漏洞。是在數(shù)據(jù)庫的前端進(jìn)行控制或告警的一種技術(shù)。它是一種透明的對(duì)數(shù)據(jù)庫進(jìn)行保護(hù)的方法,不需要重啟數(shù)據(jù)庫或進(jìn)行大范圍應(yīng)用系統(tǒng)的回歸測(cè)試。
本文針對(duì)當(dāng)前數(shù)據(jù)安全領(lǐng)域的現(xiàn)狀與發(fā)展趨勢(shì)向大家做了一些簡要的論述,從數(shù)據(jù)庫防火墻的崛起,從國際到國內(nèi)市場(chǎng),到Oracle,McAfee再到安華金和,有一點(diǎn)我們可以達(dá)成共識(shí),數(shù)據(jù)庫安全在信息安全中的整體價(jià)值地位逐步凸顯。數(shù)據(jù)庫防火墻作為針對(duì)數(shù)據(jù)庫的安全的專項(xiàng)產(chǎn)品,作為維護(hù)數(shù)據(jù)庫的堡壘屏障已經(jīng)起到了不可或缺的作用。
第三篇:在線答題系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
在線答題系統(tǒng)(選擇題、判斷題)數(shù)據(jù)庫設(shè)計(jì)
選擇題由choice_question和choice_answer組成,分別用于存儲(chǔ)選擇題的題目信息和考生的答題記錄。
choice_question的各列分別用于存儲(chǔ)題目的序號(hào)(主鍵,自增)、分?jǐn)?shù)、題目、選項(xiàng)ABCDE、正確答案。
choice_answer中的user_id、ques_id、answer分別表示用戶id、題目id,作為外鍵分別指向qs_user表中的id和choice_question表中的id,為了提高當(dāng)用戶修改題目答案,即修改answer的速度,我們將user_id和ques_id作為主鍵,并建立索引。
判斷題部分的judge_answer和judge_question設(shè)計(jì)思路和選擇題部分是一樣的。
config表用戶保存考試的開始和結(jié)束時(shí)間。
所謂的修改考試的開始和結(jié)束時(shí)間,不過是不斷update這條記錄罷了。
qs_admin,用戶保存管理員的用戶名和密碼,管理員的密碼加密規(guī)則是這樣的。
密文
=
sunstr(md5(明文+“gxdr“),5,20);
qs_user用于存儲(chǔ)考生的信息
lock用戶標(biāo)識(shí)考生是否交卷,grade用于記錄考生的成績。
第四篇:在線答題系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
在線答題系統(tǒng)(選擇題、判斷題)數(shù)據(jù)庫設(shè)計(jì)
選擇題由choice_question和choice_answer組成,分別用于存儲(chǔ)選擇題的題目信息和考生的答題記錄。
choice_question的各列分別用于存儲(chǔ)題目的序號(hào)(主鍵,自增)、分?jǐn)?shù)、題目、選項(xiàng)ABCDE、正確答案。choice_answer中的user_id、ques_id、answer分別表示用戶id、題目id,作為外鍵分別指向qs_user表中的id和choice_question表中的id,為了提高當(dāng)用戶修改題目答案,即修改answer的速度,我們將user_id和ques_id作為主鍵,并建立索引。
判斷題部分的judge_answer和judge_question設(shè)計(jì)思路和選擇題部分是一樣的。config表用戶保存考試的開始和結(jié)束時(shí)間。所謂的修改考試的開始和結(jié)束時(shí)間,不過是不斷update這條記錄罷了。qs_admin,用戶保存管理員的用戶名和密碼,管理員的密碼加密規(guī)則是這樣的。密文 = sunstr(md5(明文+“gxdr”),5,20);qs_user用于存儲(chǔ)考生的信息
lock用戶標(biāo)識(shí)考生是否交卷,grade用于記錄考生的成績。
第五篇:圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫設(shè)計(jì).................................................................2 3.1 專門術(shù)語的定義...................................................2 3.1.1 系統(tǒng)中常用的術(shù)語(或使用頻率較高的術(shù)語).........................2 3.1.2 表格定義及規(guī)范.................................................2 3.1.2.1數(shù)據(jù)約定.....................................................2 3.1.2.2表和表字段命名規(guī)范:.........................................3 3.2 數(shù)據(jù)設(shè)計(jì).........................................................3 3.2.1 數(shù)據(jù)流程圖設(shè)計(jì).................................................3 3.2.2實(shí)體關(guān)系結(jié)構(gòu)設(shè)計(jì)...............................................4 3.3安全保密設(shè)計(jì).....................................................6 3.3.1 邏輯上的安全保密...............................................6 3.3.2 物理上的安全保密...............................................6 3.4 表格與功能模塊相關(guān)性分析.........................................7 3.5 表格定義.........................................................7 數(shù)據(jù)庫設(shè)計(jì)
3.1 專門術(shù)語的定義
暫無
3.1.1 系統(tǒng)中常用的術(shù)語(或使用頻率較高的術(shù)語)暫無
3.1.2 表格定義及規(guī)范 3.1.2.1數(shù)據(jù)約定
所有數(shù)據(jù)項(xiàng)都用英文、漢語拼音或縮寫表示,數(shù)據(jù)庫名稱除外。
所有字段在設(shè)計(jì)時(shí),除以下數(shù)據(jù)類型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary、varbinary外,必須有默認(rèn)值。字符型的默認(rèn)值為一個(gè)空字符值串;數(shù)值型的默認(rèn)值為數(shù)值0;邏輯型的默認(rèn)值為數(shù)值0;
其中:系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”;數(shù)值1表示為“真”。datetime、smalldatetime類型的字段沒有默認(rèn)值,必須為NULL。當(dāng)字段定義為字符串形時(shí)建議使用varchar而不用nvarchar。建議在大多數(shù)表中(如報(bào)銷單,申請(qǐng)單),應(yīng)都有以下字段: 字段名說明類型默認(rèn)值 CreatorID創(chuàng)建者int CreatedTime創(chuàng)建時(shí)間DatetimeNULL 字符集采用 UTF-8,請(qǐng)注意字符的轉(zhuǎn)換。
所有數(shù)據(jù)表第一個(gè)字段都是系統(tǒng)內(nèi)部使用自動(dòng)序列主鍵列,自增字段,不可空,名稱為:id,確保不把此字段暴露給最終用戶。
除特別說明外,所有字符串字段都采用varchar(50)類型,(無論漢字還是英文,都算一個(gè)字符)。
除特別說明外,所有小數(shù)的字段都采用 decimal(18,2)的形式表達(dá)。
除特別說明外,所有日期格式都采用 datetime 格式(根據(jù)需要提取時(shí)間格式); 除特別說明外,所有整形都采用 bigint 格式。除特別說明外,所有字段默認(rèn)都設(shè)置為 null。3.1.2.2表和表字段命名規(guī)范:
命名規(guī)則約束的范圍包括:數(shù)據(jù)庫的命名、表的命名及字段的命名。數(shù)據(jù)庫相關(guān)的命名規(guī)則采用與通常的編程的變量命名規(guī)則原則一致,具體要求如下: 1)字段名及表名為典型的名詞結(jié)構(gòu); 2)中文名稱要求語言精練、文法嚴(yán)謹(jǐn);
3)望文知意、易懂易用,禁止采用如:A002這種命名;
4)主體采用拼音字母的首寫字母拼寫構(gòu)成,基于慣常法可適度采用無詞義歧義性的英文命名;
5)長度不少于3個(gè)字母,不大于12個(gè)字母;
6)在對(duì)于拼音首字母類似的字段和表,為區(qū)別,添加下劃線和數(shù)字如男性人數(shù):NXRS,女性人數(shù):NXRS_2。
3.2 數(shù)據(jù)設(shè)計(jì)
繪制數(shù)據(jù)流程圖的目的是為了方便開發(fā)人員與用戶的交流,以及為系統(tǒng)的設(shè)計(jì)提供依據(jù)。數(shù)據(jù)流程圖的繪制過程通常采用自頂向下,逐層分解,直到功能細(xì)化為止,形成若干層次的數(shù)據(jù)流程圖。3.2.1 數(shù)據(jù)流程圖設(shè)計(jì)
0層數(shù)據(jù)流圖
1層數(shù)據(jù)流圖
3.2.2實(shí)體關(guān)系結(jié)構(gòu)設(shè)計(jì)
圖書實(shí)體關(guān)系
讀者實(shí)體關(guān)系
圖書借閱關(guān)系實(shí)體
用戶實(shí)體關(guān)系
圖書類別實(shí)體關(guān)系
3.3安全保密設(shè)計(jì)
3.3.1 邏輯上的安全保密
1、系統(tǒng)對(duì)非法使用者的安全保密處理措施
2、系統(tǒng)對(duì)正常使用者的安全保密處理措施
3、系統(tǒng)對(duì)管理員的安全保密 3.3.2 物理上的安全保密
1、數(shù)據(jù)庫系統(tǒng)異常時(shí)的還原處理措施
2、設(shè)備遭異常毀壞時(shí)的安全防護(hù)措施
3、數(shù)據(jù)參數(shù)做到及時(shí)更新,保證系統(tǒng)正常運(yùn)行
3.4 表格與功能模塊相關(guān)性分析
3.5 表格定義
a.圖書信息表
b.讀者信息表
c.借閱表
d.管理員_書籍
e.管理員_學(xué)生