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

下載本文檔

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

文檔簡(jiǎn)介

1、CENTRAL SOUTH UNIVERSITY 數(shù)據(jù)庫系統(tǒng)安全課程設(shè)計(jì)報(bào)告 題 目 大學(xué)學(xué)生成績(jī)管理系統(tǒng) 學(xué)生姓名 專業(yè)班級(jí) 學(xué) 號(hào) 學(xué) 院 信息科學(xué)與工程學(xué)院 指導(dǎo)教師 李祖德 實(shí)驗(yàn)時(shí)間 2015年01月 目錄第一章 問題描述及設(shè)計(jì)目標(biāo)2第二章 系統(tǒng)需求分析3 2.1 需求描述3 2.2 系統(tǒng)功能結(jié)構(gòu)3 2.3 數(shù)據(jù)流圖4第三章 數(shù)據(jù)庫設(shè)計(jì)5 3.1 全局E-R圖5 3.2 數(shù)據(jù)字典5 3.3 數(shù)據(jù)庫內(nèi)關(guān)系表定義 7第四章 數(shù)據(jù)庫實(shí)現(xiàn) 8 4.1 數(shù)據(jù)庫創(chuàng)建SQL代碼8 4.2 關(guān)系表(及相關(guān)視圖)創(chuàng)建SQL代碼8 4.3 存儲(chǔ)過程、觸發(fā)器等的創(chuàng)建SQL代碼14第五章 RBAC應(yīng)用場(chǎng)境描述

2、18 5.1 場(chǎng)境1描述18 5.2 場(chǎng)境2描述20 5.3 場(chǎng)境3描述22 5.4 場(chǎng)境4描述23第六章 心得體驗(yàn)26第七章 總結(jié)26第一章 問題描述及設(shè)計(jì)目標(biāo)1.1 問題描述隨著學(xué)校規(guī)模的不斷擴(kuò)大,專業(yè)、班級(jí)、學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息量也成倍增長,而目前許多高校的學(xué)生成績(jī)管理仍停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低。除此之外,雖然大量數(shù)據(jù)庫實(shí)現(xiàn)了基于角色的訪問控制功能,卻沒有對(duì)其特征集達(dá)成一致。缺乏廣為接受的模型,導(dǎo)致了對(duì)基于角色的訪問控制作用和含義理解的不規(guī)范性和不確定性?;谝陨锨闆r,為了解決學(xué)生成績(jī)查詢和管理上遇到的實(shí)際困難,設(shè)計(jì)了一套基于RBAC模

3、型的大學(xué)學(xué)生成績(jī)管理系統(tǒng),使學(xué)生成績(jī)的錄入和管理更加信息化、智能化,使成績(jī)的查詢更加高效,系統(tǒng)價(jià)值有了更高的體現(xiàn)。1.2 設(shè)計(jì)總目標(biāo)(1)掌握如何在真實(shí)數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)基于角色訪問控制(RBAC)模型。(1)掌握如何在特定軟件系統(tǒng)中基于RBAC模型訪問和操控?cái)?shù)據(jù)庫。1.3 設(shè)計(jì)總要求· 在真實(shí)數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)RBAC模型· 開發(fā)應(yīng)用演示界面,演示如何基于RBAC訪問某數(shù)據(jù)庫o 演示界面最好是可實(shí)際操作的可視化界面,要能演示。o 如果未可視化,必須演示代碼運(yùn)行過程及結(jié)果。· 數(shù)據(jù)庫依據(jù)應(yīng)用系統(tǒng)的需求而定,應(yīng)用系統(tǒng)從如下列表中選擇。1.4 RBAC簡(jiǎn)介 基于角色訪問控

4、制(RBAC)是當(dāng)前主流的數(shù)據(jù)庫訪問控制技術(shù)。RBAC的一般模型如下:第二章 系統(tǒng)需求分析2.1 需求描述 2.1.1 學(xué)生成績(jī)管理 負(fù)責(zé)對(duì)學(xué)生成績(jī)的錄入、刪除、更改、查詢以及其他功能的管理。 (1)管理員負(fù)責(zé)學(xué)生表、教師表、課程表等基本表的基本數(shù)據(jù)的錄入、刪除和更改,并且可修改成績(jī)表的選課情況。 (2)教師、學(xué)生分別可以查詢及更改教師表、學(xué)生表中屬于自己的相應(yīng)數(shù)據(jù)。 (3)教師可以查詢及更改成績(jī)表中所教學(xué)生的成績(jī),學(xué)生只能查詢成績(jī)表中屬于自己的成績(jī)。 2.1.2 用戶和權(quán)限管理 實(shí)現(xiàn)對(duì)系統(tǒng)用戶以及不同角色的權(quán)限的管理 (1)管理員可以創(chuàng)建、刪除系統(tǒng)用戶 (2)用戶可以在登錄系統(tǒng)后修改自己的相

5、應(yīng)資料  (3)每個(gè)用戶在創(chuàng)建時(shí)須賦于相應(yīng)角色 (4)每個(gè)角色在被創(chuàng)建時(shí)可以賦于相應(yīng)權(quán)限,其所具有的權(quán)限可以修改 (5)角色創(chuàng)建后可以修改、刪除 (6)默認(rèn)的系統(tǒng)角色:管理員 教師 班長 學(xué)生 系統(tǒng)結(jié)構(gòu)圖:界面顯示模塊主要面向用戶完成相應(yīng)操作,并收集操作相關(guān)信息,向上提交給邏輯處理模塊。邏輯處理模塊收集界面顯示模塊返還的信息,并判斷數(shù)據(jù)的真實(shí)性和合法性,將合法數(shù)據(jù)封裝好后提交給傳輸模塊。本地管理模塊通過與數(shù)據(jù)庫連接池獲取數(shù)據(jù)庫連接后,將相關(guān)信息傳輸?shù)綌?shù)據(jù)庫進(jìn)行操作。數(shù)據(jù)庫2.2 系統(tǒng)功能結(jié)構(gòu)數(shù)據(jù)庫連接池本地管理模塊邏輯處理模塊界面顯示模塊大學(xué)學(xué)生成績(jī)管理系統(tǒng)成績(jī)管理權(quán)限管理

6、用戶管理角色更改管理角色查詢管理成績(jī)錄入管理登錄管理權(quán)限分配管理操作管理角色管理角色分配管理數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)圖2.3 數(shù)據(jù)流圖邏輯處理模塊界面顯示模塊用戶操作 用戶操作信息 合法數(shù)據(jù)信息本地管理模塊 傳輸數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)庫連接池 查詢結(jié)果信息 數(shù)據(jù)操作信息第三章 數(shù)據(jù)庫設(shè)計(jì)3.1 全局E-R圖全局E-R圖如下:專業(yè)年齡性別班級(jí)姓名入學(xué)時(shí)間學(xué)號(hào)學(xué)生選課課程號(hào)年齡課程名課程教師性別學(xué)分教師編號(hào)教師姓名3.2 數(shù)據(jù)字典 3.2.1 表單信息數(shù)據(jù)庫表名說明users用戶表roles角色表user_role用戶角色映射表Permissions權(quán)限表role_permission角色權(quán)限映射表Student學(xué)

7、生信息表Teacher教師信息表Course課程信息表SCT成績(jī)表LoginInfo登錄用戶信息表 3.2.1 各表信息表名:usersuserid用戶IDusername用戶姓名userpassword用戶密碼表名:rolesrolerid角色I(xiàn)Drolename角色名稱表名:user_roleuserid用戶IDroleid角色I(xiàn)D表名:PermissionsPid權(quán)限IDOperation執(zhí)行動(dòng)作objtable/view對(duì)象表/視圖objcolumn對(duì)象列名表名:role_permissionroleid角色I(xiàn)DPid權(quán)限ID表名:StudentSno學(xué)號(hào)Sname姓名Ssex性別Sa

8、ge年齡Sdept專業(yè)Sentertime入學(xué)時(shí)間Sclass班級(jí)表名:TeacherTno教師編號(hào)Tname姓名Tsex性別Tage年齡表名:CourseCno課程編號(hào)Cname課程名Ccredit學(xué)分表名:SCTSno學(xué)號(hào)Sname姓名Cno課程編號(hào)Tno教師編號(hào)Grade成績(jī)表名:LoginInfoCURRENTUSER當(dāng)前登錄用戶ID3.3 數(shù)據(jù)庫內(nèi)關(guān)系表定義數(shù)據(jù)庫內(nèi)關(guān)系圖如下:第四章 數(shù)據(jù)庫實(shí)現(xiàn)4.1 數(shù)據(jù)庫創(chuàng)建SQL代碼USE masterGOCREATE DATABASE StudentGrade ON PRIMARY ( NAME = N'StudentGrade

9、9;, FILENAME = N'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAStudentGrade.mdf' , SIZE = 2304KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'StudentGrade_log', FILENAME = N'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATASt

10、udentGrade_log.LDF' , SIZE = 832KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GOALTER DATABASE StudentGrade SET COMPATIBILITY_LEVEL = 100GOIF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')beginEXEC StudentGrade.dbo.sp_fulltext_database action = 'enable'endGO4.2 關(guān)系表(及相關(guān)視圖)創(chuàng)建SQL代碼S

11、tudent表的建立:CREATE TABLE dbo.Student(Sno varchar(20) NOT NULL,Sname varchar(20) NULL,Ssex char(2) NULL,Sage smallint NULL,Sdept varchar(20) NULL,Sentertime date NULL,Sclass varchar(50) NULL,PRIMARY KEY CLUSTERED (Sno ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW

12、_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOTeacher表的建立:CREATE TABLE dbo.Teacher(Tno varchar(9) NOT NULL,Tname varchar(20) NULL,Tsex char(2) NULL,Tage smallint NULL,PRIMARY KEY CLUSTERED (Tno ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW

13、_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOCourse表的建立:CREATE TABLE dbo.Course(Cno varchar(4) NOT NULL,Cname varchar(40) NULL,Ccredit smallint NULL,PRIMARY KEY CLUSTERED (Cno ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PA

14、GE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSCT表(成績(jī)表)的建立:CREATE TABLE dbo.SCT(Sno varchar(20) NOT NULL,Sname varchar(20) NULL,Cno varchar(4) NOT NULL,Tno varchar(9) NOT NULL,Grade smallint NULL, CONSTRAINT PK_SCT_8AC4525145F365D3 PRIMARY KEY CLUSTERED (Sno ASC,Cno ASC,Tno ASC)WITH (PAD_INDEX = OFF, STATI

15、STICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOALTER TABLE dbo.SCT WITH CHECK ADD CONSTRAINT FK_SCT_Cno_48CFD27E FOREIGN KEY(Cno)REFERENCES dbo.Course (Cno)ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE dbo.SCT CHECK CONSTRAINT FK

16、_SCT_Cno_48CFD27EGOALTER TABLE dbo.SCT WITH CHECK ADD CONSTRAINT FK_SCT_Sno_47DBAE45 FOREIGN KEY(Sno)REFERENCES dbo.Student (Sno)ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE dbo.SCT CHECK CONSTRAINT FK_SCT_Sno_47DBAE45GOALTER TABLE dbo.SCT WITH CHECK ADD CONSTRAINT FK_SCT_Tno_49C3F6B7 FOREIGN KEY

17、(Tno)REFERENCES dbo.Teacher (Tno)ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE dbo.SCT CHECK CONSTRAINT FK_SCT_Tno_49C3F6B7GOusers表的建立:CREATE TABLE dbo.users(userid varchar(50) NOT NULL,username varchar(100) NOT NULL,userpassword varchar(100) NULL,userremark varchar(100) NULL, CONSTRAINT PK_users_

18、CBA1B257145C0A3F PRIMARY KEY CLUSTERED (userid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOroles表的建立:CREATE TABLE dbo.roles(roleid int NOT NULL,rolename varchar(100) NULL,roleremark varchar(100) N

19、ULL, CONSTRAINT PK_roles_CD994BF21B0907CE PRIMARY KEY CLUSTERED (roleid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOuser_role表的建立:CREATE TABLE dbo.user_role(connectionid int IDENTITY(1,1) NOT NULL

20、,userid varchar(50) NOT NULL,roleid int NOT NULL,Premark varchar(100) NULL, CONSTRAINT PK_user_rol_A042C108267ABA7A PRIMARY KEY CLUSTERED (connectionid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGO

21、ALTER TABLE dbo.user_role WITH CHECK ADD CONSTRAINT FK_user_role_roles FOREIGN KEY(roleid)REFERENCES dbo.roles (roleid)ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE dbo.user_role CHECK CONSTRAINT FK_user_role_rolesGOALTER TABLE dbo.user_role WITH CHECK ADD CONSTRAINT FK_user_role_users FOREIGN KEY

22、(userid)REFERENCES dbo.users (userid)ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE dbo.user_role CHECK CONSTRAINT FK_user_role_usersGOPermissions表的建立:CREATE TABLE dbo.Permissions(Pid int NOT NULL,Operation varchar(50) NULL,objtable/view varchar(50) NULL,objcolumn varchar(50) NULL, CONSTRAINT PK_Pe

23、rmissi_C57059386383C8BA PRIMARY KEY CLUSTERED (Pid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOrole_permission表的建立:CREATE TABLE dbo.role_permission(roleid int NOT NULL,Pid int NOT NULL,PRIMARY KEY

24、 CLUSTERED (Pid ASC,roleid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOALTER TABLE dbo.role_permission WITH CHECK ADD FOREIGN KEY(roleid)REFERENCES dbo.roles (roleid)ON UPDATE CASCADEON DELETE CAS

25、CADEGOALTER TABLE dbo.role_permission WITH CHECK ADD CONSTRAINT FK_role_permis_Pid_01142BA1 FOREIGN KEY(Pid)REFERENCES dbo.Permissions (Pid)ON UPDATE CASCADEON DELETE CASCADEGOALTER TABLE dbo.role_permission CHECK CONSTRAINT FK_role_permis_Pid_01142BA1GOLoginInfo表的建立:CREATE TABLE dbo.LoginInfo(CURRE

26、NTUSER varchar(20) NOT NULL,PRIMARY KEY CLUSTERED (CURRENTUSER ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGO視圖Student1(學(xué)生信息視圖,角色為學(xué)生可以查看)的建立:CREATE VIEW dbo.Student1ASSELECT *FROM dbo.StudentWHERE (

27、Sno = CURRENT_USER OR Sno = (SELECT CURRENTUSER FROM LoginInfo)GO視圖Student2(同班學(xué)生信息視圖,角色為班長可以查看)的建立:CREATE VIEW dbo.Student2ASSELECT *FROM dbo.StudentWHERE (Sclass = (SELECT Sclass FROM Student WHERE Sno = CURRENT_USER OR Sno = (SELECT CURRENTUSER FROM LoginInfo)GO視圖Student1(教師信息視圖,角色為教師可以查看)的建立:CREA

28、TE VIEW dbo.Teacher1ASSELECT *FROM dbo.TeacherWHERE (Tno = CURRENT_USER OR Tno = (SELECT CURRENTUSER FROM LoginInfo)GO視圖SCT1(成績(jī)信息視圖,角色為學(xué)生或教師可以查看)的建立:CREATE VIEW dbo.SCT1ASSELECT *FROM dbo.SCTWHERE (Sno = CURRENT_USER OR Sno = (SELECT CURRENTUSER FROM LoginInfo) OR (Tno = CURRENT_USER OR Tno = (SELEC

29、T CURRENTUSER FROM LoginInfo)GO4.3 存儲(chǔ)過程、觸發(fā)器等的創(chuàng)建SQL代碼存儲(chǔ)過程LOGIN:CREATE PROCEDURE dbo.LOGIN userid varchar(50),userpassword varchar(100)ASIF (SELECT userpassword FROM users WHERE userid = userid) = userpasswordBEGINprint '登錄成功'UPDATE dbo.LoginInfo SET CURRENTUSER = useridENDELSEBEGINprint '

30、用戶名或用戶密碼錯(cuò)誤,請(qǐng)重新輸入'ENDGO存儲(chǔ)過程PermissionJudge:CREATE procedure dbo.PermissionJudge ope varchar(20),tname varchar(20),obj varchar(20)asif (SELECT * FROM LoginInfo)=ANY(select userid from user_role where roleid in (select roleid from role_permission where Pid in (select Pid from Permissions where (obj

31、table/view=tname or objtable/view = 'ALL') and (objcolumn = obj or objcolumn = 'ALL' ) and (Operation = ope or Operation = 'ALL' )/*從permissions表中找到輸入操作的權(quán)限ID,逐一匹配,找到擁有此權(quán)限的用戶ID,對(duì)輸入的操作進(jìn)行匹配*/beginreturn 1 -如果匹配成功,返回endelsebeginreturn 0 -否則,返回EndGO存儲(chǔ)過程AddGrade:CREATE procedure db

32、o.AddGradesno varchar(10),sname varchar(20),cno char(10),tno varchar(20),grade int-參數(shù)依次為,學(xué)號(hào),學(xué)生姓名,課程編號(hào),教工號(hào),課程名asdeclare a intexec a = PermissionJudge 'INSERT','SCT1','ALL'if (a=1)beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'insert into SCT1 values(sno,sname,cno,tno,grade)select sno,snam

33、e,cno,tno,grade from SCT1 where sno=sno and cno=cnoendif(a=0)beginprint '你無權(quán)進(jìn)行此操作,如有疑問請(qǐng)與管理員聯(lián)系'endGO存儲(chǔ)過程DoDELETE:CREATE procedure dbo.DoDELETE table varchar(20),no1 varchar(20),str1 varchar(20),no2 varchar(20),str2 varchar(20)-參數(shù)依次為刪除的表名,標(biāo)簽列名1(便于篩選),標(biāo)簽列名的數(shù)據(jù),標(biāo)簽列名2(便于篩選),標(biāo)簽列名的數(shù)據(jù)as declare a int

34、declare sql nvarchar(max)exec a = PermissionJudge 'DELETE',table,'ALL'if (a=1)beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'set sql='delete from '+table+' where '+no1+ '=' +str1+' and '+no2+'='+str2exec(sql)endif(a=0)beginprint'你無權(quán)進(jìn)行此操作,如有疑問請(qǐng)與管理員聯(lián)系

35、9;endGO存儲(chǔ)過程DoUPDATE:CREATE procedure dbo.DoUPDATEtable varchar(20),obj varchar(20),no varchar(20),num varchar(20),oldstr varchar(20),str varchar(20)-輸入的參數(shù)依次為,修改的表名,修改的列名,標(biāo)簽列名(便于篩選),標(biāo)簽列名的數(shù)據(jù),原來的數(shù)據(jù),新的數(shù)據(jù)-標(biāo)簽列的作用在于:在選擇更改的列時(shí),某些列的數(shù)據(jù)是一樣的,所以可能會(huì)造成誤操作,為此增加標(biāo)簽列,防止誤操作asdeclare a int -獲取PermissionJudge的返回值declare s

36、ql nvarchar(max)exec a = PermissionJudge 'UPDATE',table,obj -調(diào)用PermissionJudge存儲(chǔ)過程if (a=1) beginprint'你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'set sql='update '+table+' set '+obj+ '=' +str+' where '+no+'='+num+' and '+obj+'='+oldstr-采用動(dòng)態(tài)語句,使表名可以作為參數(shù)引用ex

37、ec(sql)endif(a=0)beginprint '你無權(quán)進(jìn)行此操作,如有疑問請(qǐng)與管理員聯(lián)系'endGO存儲(chǔ)過程DoSELECT:CREATE procedure dbo.DoSELECTtable varchar(20)-輸入的參數(shù)為,查詢的表名asdeclare a int -獲取PermissionJudge的返回值declare sql nvarchar(max)exec a = PermissionJudge 'SELECT',table,'ALL' -調(diào)用PermissionJudge存儲(chǔ)過程if a=1beginprint&#

38、39;你擁有此權(quán)限,可以進(jìn)行相關(guān)操作'set sql='SELECT * FROM '+table-采用動(dòng)態(tài)語句,使表名可以作為參數(shù)引用exec(sql)endif(a=0)beginprint '你無權(quán)進(jìn)行此操作,如有疑問請(qǐng)與管理員聯(lián)系'endGO存儲(chǔ)過程LOGOUT:CREATE PROCEDURE dbo.LOGOUTASBEGINUPDATE dbo.LoginInfo SET CURRENTUSER = '0000'print '注銷成功'ENDGO觸發(fā)器UPDATE_SAL:CREATE TRIGGER dbo

39、.UPDATE_SAL ON dbo.Student AFTER UPDATEAS BEGINSET NOCOUNT ON; UPDATE SCT SET Sname = (SELECT Sname FROM Student WHERE Student.Sno = SCT.Sno) - 當(dāng)學(xué)生名字更改時(shí),同步更改成績(jī)表中相應(yīng)學(xué)號(hào)的學(xué)生名字ENDGO第五章 RBAC應(yīng)用場(chǎng)境描述5.1 場(chǎng)境1:班長登錄系統(tǒng)進(jìn)行相關(guān)的查詢和更改操作 打開SQL Server 2008,登錄方式選擇SQL Server身份驗(yàn)證,輸入登錄名:“0909120101”,密碼:“120101”,連接。(用戶09091201

40、01的角色為學(xué)生和班長)新建查詢,輸入“SELECT * FROM Student1”,結(jié)果如下:新建查詢,輸入“SELECT * FROM Student2”,結(jié)果如下:新建查詢,輸入“SELECT * FROM SCT1”,結(jié)果如下:新建查詢,輸入“SELECT * FROM Teacher1”,結(jié)果如下:新建查詢,輸入“UPDATE Student1 SET Sname='劉三' WHERE Sno='0909120101'”,結(jié)果如下:然后輸入“SELECT * FROM Student1”,可以看到名字已改好。新建查詢,輸入“UPDATE Studen

41、t1 SET Sno='10000001' WHERE Sno='0909120101'”,結(jié)果如下:5.2 場(chǎng)境2描述:教師登錄系統(tǒng)進(jìn)行相關(guān)的查詢和更改操作 打開SQL Server 2008,登錄方式選擇SQL Server身份驗(yàn)證,輸入登錄名:“09091001”,密碼:“1001”,連接。(用戶09091001的角色為老師)新建查詢,輸入“SELECT * FROM Student1”,結(jié)果如下:新建查詢,輸入“SELECT * FROM SCT1”,結(jié)果如下:新建查詢,輸入“SELECT * FROM Teacher1”,結(jié)果如下:新建查詢,輸入“UP

42、DATE SCT1 SET Grade='99' WHERE Sno='0909120101' AND Cno='1'”,結(jié)果如下:然后輸入“SELECT * FROM SCT1”,可以看到成績(jī)已改好。新建查詢,輸入“UPDATE SCT1 SET Sname='劉劉' WHERE Sno='0909120101'”,結(jié)果如下:5.3 場(chǎng)境3描述:普通學(xué)生登錄系統(tǒng)進(jìn)行相關(guān)的查詢和更改操作 打開SQL Server 2008,登錄方式選擇SQL Server身份驗(yàn)證,輸入登錄名:“0909120202”,密碼:“12

43、0202”,連接。(用戶0909120202的角色為學(xué)生)新建查詢,輸入“SELECT * FROM Student1”,結(jié)果如下:新建查詢,輸入“SELECT * FROM Student2”,結(jié)果如下:此查詢說明普通學(xué)生不具備查看同班同學(xué)信息的權(quán)限。新建查詢,輸入“SELECT * FROM SCT1”,結(jié)果如下:其他查詢結(jié)果與5.1類似,這里不再贅述。5.4 場(chǎng)境4描述:管理員登錄系統(tǒng)進(jìn)行相關(guān)的查詢和更改操作 打開SQL Server 2008,登錄方式選擇SQL Server身份驗(yàn)證,輸入登錄名:“10000001”,密碼:“0001”,連接。(用戶10000001的角色為管理員)如下所示,管理員具有對(duì)所有基本表、視圖及存儲(chǔ)過程的所有操作權(quán)限,對(duì)整個(gè)系統(tǒng)的建立、維護(hù)起著非常大的作用。這里演示管理員對(duì)幾個(gè)基本表的查詢操作以查看系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論