數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告_第1頁
數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告_第2頁
數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告_第3頁
數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告_第4頁
數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課程設(shè)計(jì)報(bào)告563bfc3c0035ce31be3e74d4e7b5dc0c.pdf_ 中南大學(xué)數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告題 目 學(xué)生成績管理系統(tǒng) 學(xué)生姓名 指導(dǎo)教師 李祖德 學(xué) 院 信息科學(xué)與工程學(xué)院 專業(yè)班級(jí) 完成時(shí)間 目 錄第一章 設(shè)計(jì)內(nèi)容3第二章 需求分析3課題設(shè)計(jì)總目標(biāo)3課題設(shè)計(jì)總要求3需求分析4第三章 概要設(shè)計(jì)4第四章 詳細(xì)設(shè)計(jì)7數(shù)據(jù)字典8數(shù)據(jù)庫內(nèi)關(guān)系表定義8其他設(shè)計(jì)9第五章 調(diào)試分析9第六章 測試結(jié)果96.1 場景一96.2 場景二106.3 場景三10第七章 課程設(shè)計(jì)總結(jié)11第八章 代碼附錄12數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)第一章 設(shè)計(jì)內(nèi)容設(shè)計(jì)題目:學(xué)生成績管理系統(tǒng)。第二章 需求分析課

2、題設(shè)計(jì)總目標(biāo) 1.掌握如何在真實(shí)數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)基于角色訪問控制(RBAC)模型;2.掌握如何在特定軟件系統(tǒng)中基于RBAC模型訪問和操控?cái)?shù)據(jù)庫。課題設(shè)計(jì)總要求1.在真實(shí)數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)RBAC模型;2.開發(fā)應(yīng)用演示界面,演示如何基于RBAC訪問某數(shù)據(jù)庫; 演示界面最好是可實(shí)際操作的可視化界面,要能演示; 如果未可視化,必須演示代碼運(yùn)行過程及結(jié)果。 基于角色訪問控制(RBAC)是當(dāng)前主流的數(shù)據(jù)庫訪問控制技術(shù)。RBAC的一般模型如下:需求分析 隨著科技的發(fā)展,基本上所有的具有一定數(shù)量數(shù)據(jù)的機(jī)構(gòu)都開始使用計(jì)算機(jī)數(shù)據(jù)庫來做管理。幾乎所有學(xué)校也都已經(jīng)在使用計(jì)算機(jī)管理數(shù)據(jù)的機(jī)制,大大減少了學(xué)校學(xué)生成績管理

3、的工作量。該課程設(shè)計(jì)要求設(shè)計(jì)一個(gè)學(xué)生成績的數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫中要求包含學(xué)生的基本信息,學(xué)科基本信息,學(xué)生所學(xué)課程的考試成績,學(xué)生能夠查詢自己的考試成績,老師能夠?yàn)樗虒W(xué)的課程打分,班主任能夠查看選課信息、學(xué)生成績等信息,并可以進(jìn)行添加教師和成績的操作。通過該課程設(shè)計(jì),應(yīng)該達(dá)到把數(shù)據(jù)庫理論知識(shí)更加的鞏固加深,加強(qiáng)動(dòng)手能力與實(shí)踐能力,學(xué)以致用,與現(xiàn)實(shí)生活中的應(yīng)用充分的結(jié)合起來的目的。此系統(tǒng)實(shí)現(xiàn)如下系統(tǒng)功能:(1) 使得學(xué)生的成績管理工作更加清晰、條理化、自動(dòng)化; (2) 通過用戶名和密碼登錄系統(tǒng),查詢課程基本資料,學(xué)生所選課程成績,修改用戶密碼等功能,容易地完成學(xué)生信息的查詢操作;(3) 設(shè)計(jì)

4、人機(jī)友好界面,功能安排合理,操作使用方便,并且進(jìn)一步考慮系統(tǒng)在安全性,完整性,并發(fā)控制,備份和恢復(fù)等方面的功能要求。第三章 概要設(shè)計(jì)要求設(shè)計(jì)成RBAC(基于角色訪問),因此設(shè)定三個(gè)角色:學(xué)生、老師、班主任。班主任擁有管理員權(quán)限,可以訪問所有表,并且對所有表擁有增刪改的權(quán)限;老師可以對自己教授的課程給出學(xué)生成績,并且可以修改成績,但基于保護(hù)學(xué)生隱私的考慮,給出成績后除非修改,不能再查看學(xué)生成績;學(xué)生可以選課并查看自己的成績。后期,還可以加入課代表、班長等特殊的用戶,同時(shí)屬于兩個(gè)角色。RBAC參考模型通過四個(gè)RBAC模型組件來進(jìn)行定義核心RBAC角色層次RBAC靜態(tài)職責(zé)分離關(guān)系動(dòng)態(tài)職責(zé)分離關(guān)系。核

5、心RBAC定義了能夠完整地實(shí)現(xiàn)一個(gè)RBAC系統(tǒng)所必需的元素元素集和關(guān)系的最小集合,其中包括最基本的用戶/角色分配和權(quán)限/角色分配關(guān)系。此外,它還引入了角色激活的概念作為計(jì)算機(jī)系統(tǒng)中用戶會(huì)話的一個(gè)組成部分。核心RBAC對于任何RBAC系統(tǒng)而言都是必需的,其它RBAC組件彼此相互獨(dú)立并且可以被獨(dú)立地實(shí)現(xiàn)。角色層次RBAC組件支持角色層次。角色層次從數(shù)學(xué)上講是一個(gè)定義角色之間級(jí)別關(guān)系的偏序,高級(jí)別的角色獲得低級(jí)別角色的權(quán)限,低級(jí)別角色獲得高級(jí)別角色的用戶成員。此外,層次RBAC還引入了角色的授權(quán)用戶和授權(quán)權(quán)限的概念。靜態(tài)職責(zé)分離針對用戶/角色分配定義了角色間的互斥關(guān)系。由于可能與角色繼承產(chǎn)生不一致,

6、靜態(tài)職責(zé)分離關(guān)系組件在沒有角色層次和存在角色層次的情況下分別進(jìn)行了定義。動(dòng)態(tài)職責(zé)分離關(guān)系針對用戶會(huì)話中可以激活的角色定義了互斥關(guān)系。每個(gè)模型組件都由下列子組件來定義:a)一些基本元素集;b)一些基于上述基本元素集的RBAC關(guān)系;c)一些映射函數(shù),在給定來自某個(gè)元素集的實(shí)例元素的情況下能夠得到另一個(gè)元素集的某些實(shí)例元素。RBAC參考模型給出了一種RBAC特征的分類,可以基于這些分類的特征構(gòu)建一系列RBAC特征包。本標(biāo)準(zhǔn)的主要目的不是試圖定義RBAC特征的全集,而是致力于提供一組標(biāo)準(zhǔn)的術(shù)語來定義已有的模型和商業(yè)產(chǎn)品中最主要的RBAC特征。RBAC功能規(guī)范描述了創(chuàng)建和維護(hù)RBAC元素集和RBAC關(guān)系

7、的管理操作;進(jìn)行管理查詢的管理查看函數(shù);創(chuàng)建和維護(hù)用戶會(huì)話的RBAC屬性和進(jìn)行訪問控制決策的系統(tǒng)函數(shù)。本標(biāo)準(zhǔn)對這些函數(shù)進(jìn)行了足夠細(xì)致的定義,以便支持一致性測試和保證的需要,同時(shí)給開發(fā)者提供了足夠的設(shè)計(jì)靈活性以滿足用戶的需求。基于概要設(shè)計(jì)的E-R圖如下: 系統(tǒng)設(shè)計(jì)流程圖如下:第四章 詳細(xì)設(shè)計(jì)第一步是確定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu),包括確定關(guān)系、索引、日志、備份等的存儲(chǔ)安排及存儲(chǔ)結(jié)構(gòu),以及確定系統(tǒng)存儲(chǔ)參數(shù)的配置。因?yàn)樵摮煽児芾硐到y(tǒng)的數(shù)據(jù)量小,所以我們只用把數(shù)據(jù)存儲(chǔ)在使用的電腦硬盤上,不用作更多的安排。數(shù)據(jù)字典為了體現(xiàn)RBAC,設(shè)計(jì)了用戶表、角色表、用戶-角色表、權(quán)限表、角色

8、-權(quán)限表、教師表、學(xué)生成績表、課程表、臨時(shí)表等表格,各個(gè)表的信息如下:表1 - 角色表表2 - 課程表表3 - 學(xué)生成績表表4 - 教師表表5 - 角色-權(quán)限表表6 - 臨時(shí)表表7 - 用戶-角色表表8 - 用戶表表9 - 權(quán)限表數(shù)據(jù)庫內(nèi)關(guān)系表定義用戶信息(用戶ID,用戶名,用戶密碼)角色(角色I(xiàn)D,角色名)用戶 - 角色(用戶ID,角色I(xiàn)D)權(quán)限(權(quán)限ID,動(dòng)作,對象,表名)角色 - 權(quán)限(角色I(xiàn)D,權(quán)限ID)教師(教師號(hào),姓名,課程號(hào))選課(課程號(hào),課程名,學(xué)號(hào),教師號(hào))學(xué)生成績(學(xué)號(hào),課程號(hào),姓名,成績)與以上的數(shù)據(jù)字典對應(yīng)。其他設(shè)計(jì)接著根據(jù)預(yù)先設(shè)計(jì)的功能寫存儲(chǔ)過程。功能有:學(xué)生選課、查

9、看成績、添加和修改成績、刪除用戶、修改密碼等,因此對應(yīng)寫了六個(gè)存儲(chǔ)過程,其中臨時(shí)表的作用是存放將要修改的各種表數(shù)據(jù),這樣做的好處在于可以做到一次修改一列甚至整個(gè)表,故而為此也寫了一個(gè)存儲(chǔ)過程,專門操作臨時(shí)表。第五章 調(diào)試分析在調(diào)試過程中,有時(shí)候會(huì)發(fā)生明明已經(jīng)編輯好了權(quán)限表,之前的測試也表明權(quán)限表是正常且完好,卻不能操作,或操作結(jié)果與預(yù)期結(jié)果不符合的情況。后來我發(fā)現(xiàn),因?yàn)椴僮饕徽谢蛘咭徽?,在存?chǔ)過程中只要有一個(gè)被操作表的相應(yīng)行或者列寫錯(cuò),操作就不能好好進(jìn)行。這說明,表的數(shù)據(jù)添加要仔細(xì)檢查。另外,sql語句的語法與一般的語言有些不同,我還不是很習(xí)慣,所以經(jīng)常有些奇怪的錯(cuò)誤出現(xiàn),然而SqlSer

10、ver不會(huì)提示,這就需要自己仔細(xì)檢查了:比如說,存儲(chǔ)過程應(yīng)用變量要用符號(hào),這和常用的C語言、Java語言都不同,所以有時(shí)候不小心忘記。還有,sql在SqlServer中是不用分號(hào)“;”的,但在MySQL中,每個(gè)語句末尾必須帶上分號(hào)不然就會(huì)報(bào)錯(cuò),這也是一定要注意的。MySQL和SqlServer的語法有不少區(qū)別,因此兩個(gè)數(shù)據(jù)庫之間的相互轉(zhuǎn)換還是有些麻煩的,故如果要完成一個(gè)項(xiàng)目,最好還是只使用一個(gè)數(shù)據(jù)庫調(diào)試。第六章 測試結(jié)果6.1 場景一6.2 場景二6.3 場景三第七章 課程設(shè)計(jì)總結(jié)當(dāng)試運(yùn)行數(shù)據(jù)庫合格后,數(shù)據(jù)庫開發(fā)設(shè)計(jì)的工作就基本完成了,接下來就是正式運(yùn)行中的調(diào)試,應(yīng)為該系統(tǒng)比較簡單,數(shù)據(jù)量小,

11、數(shù)據(jù)庫中幾乎不會(huì)發(fā)生什么大的變化,但是還是需要做好數(shù)據(jù)的備份,在SqlServer中我們可以利用備份數(shù)據(jù)庫的功能對已經(jīng)設(shè)計(jì)好的數(shù)據(jù)做備份,如果數(shù)據(jù)庫受到破壞或系統(tǒng)故障,我們便可輕松的利用備份文件恢復(fù)數(shù)據(jù)庫的數(shù)據(jù)。當(dāng)然也可以利用其他各種方法進(jìn)行數(shù)據(jù)維護(hù)。在課設(shè)中,我進(jìn)一步深入理解了數(shù)據(jù)庫設(shè)計(jì)的整個(gè)過程,該學(xué)生選課系統(tǒng)的需求分析、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)有關(guān)內(nèi)容等;掌握使用了SqlServer設(shè)計(jì)C /S結(jié)構(gòu)的管理信息系統(tǒng);綜合練習(xí)了SqlServer的使用和數(shù)據(jù)庫得管理技術(shù);綜合熟悉并練習(xí)了SQL語言在編程中的使用;提高了我的綜合編程能力:實(shí)現(xiàn)目標(biāo)代碼得能力及調(diào)試代碼得能力。通過這次課程設(shè)計(jì),我發(fā)現(xiàn)了

12、自身的不足,比如沒有很好的書寫習(xí)慣,考慮問題不周到,對于數(shù)據(jù)庫的理解不夠深入等。但在編程的過程中我體驗(yàn)到了一分耕耘一分收獲的喜悅;多次調(diào)試后程序成功運(yùn)行了,那時(shí)候的歡樂是我以前無法想象的。并且,我養(yǎng)成了寫程序時(shí)添加注釋的好習(xí)慣,這樣在改錯(cuò)、函數(shù)功能一一對應(yīng)方面就方便多了。果然,學(xué)習(xí)任何一門課程,只要學(xué)得用心,都可以從中體會(huì)到學(xué)習(xí)的快樂。今后我的進(jìn)步,想必都是從這一點(diǎn)點(diǎn)敲入編譯器的代碼中獲得的。第八章 代碼附錄create table permit (permitid int,primary key(permitid),action v

13、archar(20),object varchar(20),tablename varchar(20)create table role(roleid int,rolename varchar(20)primary key(roleid)create table role_permit(roleid int,permitid int,primary key(roleid,permitid),foreign key(roleid) references

14、60;role(roleid) on delete cascade,foreign key(permitid) references permit(permitid) on delete cascade)create table teacher(tno int,tname varchar(20),cno int,primary key(tno),)create table userinfo(userid int,us

15、ername varchar(20),primary key(userid)create table user_role(userid int,roleid int,foreign key(userid) references userinfo(userid) on delete cascade,foreign key(roleid) references role(roleid) on delete cascade

16、,primary key(userid,roleid)create table temp(userid int,username varchar(20),action varchar(20),object varchar(20),tablename varchar(20),)create table studentgrade(sno int,sname varchar(20),cno int,grade int,primary key(sno,c

17、no),foreign key(cno) references selectcourse(cno) ,)create table selectcourse(cno int,course varchar(20),sno int,tno int,primary key(cno),foreign key(tno) references teacher(tno)USE PSGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONG

18、OALTER  procedure dbo.getgradeuid int,sno int,sname varchar(20),cno int,course varchar(20)asexec user_permit uidif exists(select uid,action,tablename from temp where uid=userid and action='查看' and&

19、#160;tablename='studentgrade')beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'select sno,sname,cno,course as course,grade from studentgrade where  sno=sno and cno=cnoendelsebeginprint'你無此操作權(quán)限,但你可以進(jìn)行如下操作'select action,tablename from 

20、tempendcreate procedure user_permituserid intasdelete from tempinsert into tempselect userid,username,action,tablename from permit,userinfo,role_permit,user_rolewhere userinfo.userid=userid and userinfo.userid = user_role.use

21、ridand user_role.roleid = role_permit.roleid and permit.permitid =role_permit.permitidUSE PSGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER  procedure dbo.loadgradeuid int,sno int,sname varchar(20),cno int,grade int,course

22、60;varchar(20)asexec user_permit uidif exists(select uid,action,tablename from temp where uid=userid and action='增加' and tablename='studentgrade')beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'insert into studentgrade val

23、ues(sno,sname,cno,grade)select sno,sname,cno,course as course,grade from studentgrade where  sno=sno and cno=cnoendelsebeginprint'你無此操作權(quán)限,但你可以進(jìn)行如下操作'select action,tablename from tempendcreate procedure getpermituid

24、60;int ,act varchar(20),tna varchar(20)asexec user_permit uidif exists(select uid,act,tna from temp where uid=userid and act=action and tna=tablename)beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'endelsebeginprint'你無此操作權(quán)限,但你可以進(jìn)行如下操作

25、'select action,tablename from tempendcreate  procedure deleteuseruid int,uid1 intasexec user_permit uidif exists(select uid,action from temp where uid=userid and action='刪除')beginprint'你擁有此權(quán)限,可以

26、進(jìn)行相關(guān)操作'delete from userinfo where userid=uid1endelsebeginprint'你無此操作權(quán)限,但你可以進(jìn)行如下操作'select action,tablename from tempendcreate  procedure  deletegradeuid int,act varchar(20),tna varchar(20),sno int,cno varchar(

27、20)asexec user_permit uidif exists(select uid,act,tna from temp where uid=userid and act=action and tna=tablename)beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'delete from course where sno=sno and cno=cnoendelsebeginprint'你無此操作權(quán)限,但你可以進(jìn)行如下操作'select action,tablename from tempendinsert into role(roleid,rolename) values(1,'學(xué)生

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論