数据库安全实验报告Word文档格式.docx
《数据库安全实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库安全实验报告Word文档格式.docx(5页珍藏版)》请在冰豆网上搜索。
权力收回操作之后的用户是否确实丧失了收回的数据操作的权力)。
根据以下要求认真填写实验报告,记录所有的实验用例。
5.实验内容与完成情况:
首先需要在数据库的用户中建立u1-u7,张明,王平,赵玲这10个用户。
步骤:
在自己的数据库角色中右击选择新建用户——在登录名选项中选择新建——在跳出的二级对话框中输入名称,在身份验证中选择sQLseRVeR身份验证,单机确定——在登陆名中选则刚刚输入的名称,单机击确定。
[例1]把查询student表权限授给用户u1gRAnTseLecT
onTAbLestudent
Tou1;
改正:
gRAnTseLecT
onstudent
[例2]把对student表和course表的全部权限授予用户u2和u3
gRAnTALLpRIVILeges
onstudent,course
Tou2,u3;
[例3]把对表sc的查询权限授予所有用户gRAnTseLecT
onsc
TopubLIc;
[例4]把查询student表和修改学生学
号的权限授给
用户u4
gRAnTupDATe(sno),seLecT
Tou4;
[例5]把对表sc的InseRT权限授予u5
用户,并
允许他再将此权限授予其他用户
gRAnTInseRT
Tou5
wIThgRAnTopTIon;
[例6]gRAnTInseRT
Tou6
[例7]gRAnTInseRT
onscTou7;
[例8]把用户u4修改学生学号的权限收回ReVoKeupDATe(sno)
FRomu4;
[例9]收回所有用户对表sc的查询权限ReVoKeseLecT
FRompubLIc;
[例10]把用户u5对sc表的InseRT权限收回ReVoKeInseRT
FRomu5cAscADe;
[例11]通过角色来实现将一组权限授予一个用户。
步骤如下:
篇二:
数据库《数据库的安全与权限》实验报告
xx大学计算机与信息技术学院
实
验报告
篇三:
数据库的完整性和安全性实验报告
信息工程学院实验报告
课程名称:
《数据库原理》
实验项目名称:
数据库的完整性和安全性
一、实验目的:
(1)掌握数据库约束的概念;
(2)熟悉sQLseRVeR的完整性约束技术。
(3)了解sQLseRVeR的违反完整性处理措施。
(4)了解登录账户的管理理念与具体方法。
(5)了解数据库用户的管理的要则。
(6)了解用户权限管理的内涵与方法。
二、实验设备与器件win7+sqlserver20XX三、实验内容与步骤
(一)测试完整性
运行附录中的sQL语句,理解sQL语句中包含的完整性定义。
然后执行下面的sQL语句,看是否能正常运行,若无法执行,请说明原因。
1.对dept表进行数据增删改,并检查完整性规则Dept已存在的完整性规则如下:
dnodname
chAR
(2)
pRImARYKeY
VARchAR(20)noTnuLL,unIQue
(1)增加数据
InseRTInTodeptVALues(D1,计科系);
----正常插入
InseRTInTodeptVALues(D2,电信系);
InseRTInTodeptVALues(nuLL,机械系);
----违反dno主键(noTnuLL)规则
InseRTInTodeptVALues(D2,机械系);
----违反dno主键(unIQue)
InseRTInTodeptVALues(D3,nuLL);
----违反dname的noTnuLL规则
InseRTInTodeptVALues(D3,计科系);
----违反dname的unIQue规则
InseRTInTodeptVALues(D3,机械系);
(2)删除数据
DeLeTeFRomdeptwheRedno=D3;
----正常删除(3)修改数据
upDATedeptseTdname=计算机科学系wheRedno=D1;
----正常修改
upDATedeptseTdname=电信系wheRedno=D1;
upDATedeptseTdname=nuLLwheRedno=D1;
违反dname的unIQue规则
2.对student表进行数据增删改,并检查完整性规则student已存在完整性规则如下:
snosname
noTnuLL,
VARchAR(20)
ssexchAR
(2)sageInTdno
noTnuLL,checK(ssexin(男,女))
noTnuLL,FoReIgnKeYReFeRencesdept(dno)
onDeLeTecAscADeonupDATecAscADe
InseRTInTostudentVALues(s1,张刚,男,20,D1);
----正常插入InseRTInTostudentVALues(s2,李梅,女,21,D2);
----正常插入InseRTInTostudentVALues(s2,吴敏,男,20,D1);
InseRTInTostudentVALues(nuLL,吴敏,男,20,D1);
----违反sno的主键(noTnuLL)规则
InseRTInTostudentVALues(s3,吴敏,男,nuLL,D1);
违反sage的主键(noTnuLL)规则
InseRTInTostudentVALues(s3,吴敏,m,20,D1);
违反ssex的checK规则
InseRTInTostudentVALues(s3,吴敏,男,20,D3);
----正常插入InseRTInTostudentVALues(s3,吴敏,男,20,D1);
----正常插入
(2)删除数据
DeLeTeFRomstudentwheResno=s3;
upDATestudentseTsname=赵强,dno=D2wheResno=s1-----正常修改upDATestudentseTssex=FwheResno=s1;
-----违反ssex的checK规则
upDATestudentseTsno=s2wheResno=s1;
-----违反sno的主键(unIQue)规则
upDATestudentseTdno=D3wheResno=s1;
违反dno的外键规则
upDATedeptseTdno=D3wheRedno=D1;
----检查dno的外键onupDATe规则,观察运行后效果
DeLeTeFRomdeptwheRedno=D2;
----检查dno的外键onDeLeTe规则,观察运行后效果
(二)使用规则实现数据完整性
(1)在查询分析器中,利用命令(cReATeRuLe),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;
然后将所创建的规则绑定到“sage”列(提示:
用命令sp_bindrule)。
cReATeRuLerule_sageas@sagebetween1and100;
sp_bindrulerule_sage,student.sage
;
(2)在查询分析器中,利用命令(cReATeRuLe),创建一个关于学分(credit)约束的规则,将“credit”列的值约束在1~8之间的整数;
然后将所创建的规则绑定到“credit”列(提示:
cReATeRuLerule_creditas@creditbetween1and8;
sp_bindrulerule_credit,course.credit;
(3)在企业管理器中,创建一个关于成绩(grade)约束的规则,将“grade”列的值约束在0~100以内;
然后将所创建的规则绑定到“grade”列。
cReATeRuLerule_gradeas@gradebetween1and100
sp_bindrule(:
数据库安全实验报告)rule_grade,study.grade
(三)使用触发器实现数据完整性(选做)
(1)在查询分析器中,输入以下cReATeTRIggeR语句,创建以下触发器:
为student表创建一个InseRT触发器,当插入的新行中年龄的值不是0~180时,就激活该触发器,撤销该插入操作,并使用RAIseRRoR语句返回一个错误信息。
(2)在查询分析器中,执行InseRT语句为student表添加一年龄为220的学生,此时触发器是否执行?
分析原因。
(四)测试数据库安全性
设置身份验证模式:
右键服务器实例,选择"
属性"
,在"
security"
(安全性)项中,将"
服务器身份验证"
设置为"
sQLserver和windows身份验证模式"
,确定。
根据提示重新启动sql服务。
然后执行下面的语句启用sa用户。
sp_password[[@old=]old_password,]{[@new=]new_password}[,[@loginame=]login]execsp_passwordnull,db123456,saALTeRLogInsa
enAbLe
1.建立登录、授予登录的服务器角色。
(1)建立和删除登录
打开企业管理器和查询分析器,以超级用户sa连接sQLserver服务器,建立sQLserver登录,登录名为loginsql,并设置口令为123456。
sp_addloginloginsql,123456
另外打开sQLservermanagementstudio,以loginsql登录连接服务器,测试服务器权限。
试运行cReATeDATAbAsetest,能否成功?
(2)以sa登陆查询分析器,授予loginsql登录的服务器角色——dbcreator,sp_addsrvrolememberloginsql,dbcreator
然后以loginsql登录查询分析器,并运行cReATeDATAbAsetest,能否成功?
2.创建用户、授予用户的权限。
(1)以sa登陆查询分析器,建立数据库。
cReATeDATAbAsedbstudent
go
usedbstudentgo
cReATeTAbLetbstudent(sno);
以loginsql登录查询分析器,测试能否使用数据库?
sname
int,varchar(10)
(2)以sa登陆查询分析器,创建用户,授予用户的权限sp_adduserloginsql,usera
以loginsql登录另一个查询分析器,进入数据库dbstudent(usera用户),测试权限。
可以使用数据库dbstudent①sa授予用户语句权限
gRAnTcReATeTAbLeTousera②授予用户的对象权限
gRAnTseLecTontbstudentTouseragRAnTInseRTontbstudentTousera
再次以loginsql登录进入数据库dbstudent(usera用户),测试被授予权限。
3.创建数据库角色,授予数据库角色的权限。
(1)sa进入数据库,创建数据库角色usedbstudentgo
sp_addrolerolea
(2)授予数据库角色的权限
gRAnTcReATeTAbLeTorolea
gRAnTseLecT,InseRT,deleteontbstudentTorolea(3)授予用户的数据库角色
sp_addrolememberrolea,usera,测试loginsql登录是否具有update权限
insertintotbstudentvalues(103,jake)updatetbstudentsetsname=tomwheresno=103
不具有update权限
以sa登录运行语句sp_addrolememberdb_datawriter,usera,再次测验loginsql的update权限。