1 / 18
文档名称:

合肥师范学院 大数据库实验三.pdf

格式:pdf   大小:1,727KB   页数:18页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

合肥师范学院 大数据库实验三.pdf

上传人:青山代下 2024/5/20 文件大小:1.69 MB

下载得到文件列表

合肥师范学院 大数据库实验三.pdf

相关文档

文档介绍

文档介绍:该【合肥师范学院 大数据库实验三 】是由【青山代下】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【合肥师范学院 大数据库实验三 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..师学院实验报告:课程名称:数据库原理院(系):计算机学院专业/年级:2014计算机科学与技术(嵌入式班)实验三——数据库完整性与安全性(4课时)一、、参照完整性、用户自定义完整性的概念,学****三类完整性的实现,了解违反完整性的结果;,熟练使用自主存取控制进行权限管理;二、实验预****容在认真阅读教材及实验指导书【】、【】、【】、【】、【】和【】、【】、【】、【】、【】的基础上,上机前请预****以下容,并在空白处填写相应的步骤或命令。)创建一新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department(varchar(20))三个属性列,其中Class_id为主码:CreatetableCLASS(Class_idvarchar(4)primarykey,namevarchar(10),departmentvarchar(20));:..2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;insertintoclassvalues(’0001’,’01csc’,’cs’);:..:..,要求:包括学生编号、学生、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。createtablestudenthelp(sidchar(10),snamechar(30),shidchar(10)unique,foreignkey(sid)referencesstudents(sid));,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;altertablescdropFK_SC_STU;altertablescaddconstraintfk_snoforeignkey(sno)referencesstu(sno):..ondeletenoactiononupdatenoaction;2)当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;altertablescdropfk_sno;altertablescaddconstraintfk_snoforeignkey(sno)referencesstu(sno)ondeletecascadeonupdatecascade;:创建Worker表(表结构见指导书P73)createtableworker(numberchar(5),namechar(8),sexchar(1),sageint,deparmentchar(20));1)定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;useschoolcreatetableworker(numberchar(5),namechar(8)constraintu1unique,:..sexchar(1),sageintconstraintu2check(sage<=28),deparmentchar(20),constraintpk_workerprimarykey(number))2)插入一条合法记录;insertintoworkervalues('20161','王丽','n','23','科技部');:..3)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;insertintoworkervalues('20162','民','n','30','办公部');4)去除U1约束;altertableworkerdropu1;5)修改约束U2,令sage的值大于等于0;altertableworkerdropu2;:..altertableworkeraddconstraintu2check(sage>=0);6)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;createrulerule_sexasvaluein('F','M')goexecsp_bindrulerule_sex,'worker.[sex]';7)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。insertintoworkervalues('20163','敏','n','27','教育部');:..insertintoworkervalues('20163','敏','F','25','教育部');,请写出相应的语句:1)为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于0;createtriggert1onworkerforinsert,update:..if(selectsagefrominserted)<=0beginprint'0,否则处理失败!'rollbacktransactionEnd2)为Worker表创建触发器T2,禁止删除编号为00001的记录;createtriggert2onworkerfordeleteasif(selectnumberfromdeleted)='00001'beginprint'禁止删除该信息!'rollbacktransactionend:..3为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的sage的值大。createtriggert3onworkerforupdateasif(selectsagefrominserted)<=(selectsagefromdeleted)beginprint'操作失败!'rollbacktransactionEnd:..1)设置SQLSERVER的安全认证模式;在SQLServerManagementstudio窗口中左部的对象资源管理器”窗口中展开服务器组,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现SQLServer服务属性对话框,在SQLServer服务属性对话框中,选择“安全性”选择页,在“服务器身份验证”一栏选择“SQLServer和Windows身份验证”单选项。2)建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为“abcd”;execsp_addlogin'liyong','abcd','school';ess'liyong';3)取消“LiYong”用户;ess'liyong';execsp_droplogin'liyong';:..先以sa登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为),并加以必要的说明。)execsp_addlogin'u1','123','school';ess'u1';grantselectonstudentstou1;2)execsp_addlogin'u2','123','school';ess'u2';grantallonstudentstou2;:..grantselectonchoicestopublic;4)execsp_addlogin'u3','123','school';ess'u3';grantselectonstudentstou3withgrantoption;5)execsp_addlogin'u4','123','school';ess'u4';grantselectonstudentstou4withgrantoption;6)execsp_addlogin'u5','123','school';ess'u5';grantselectonstudentstou57)execsp_addlogin'u6','123','school';ess'u6';grantinsertonchoicestou6withgrantoption;8)execsp_addlogin'u7','123','school';ess'u7';,授权给计算机系讲授课程号为10010’的数据库用户“LiYong”,让其具有视图上的SELECT权限;createviewcs_viewasselect*fromchoices;grantselectoncs_viewtoliyong;:..“LiYong”,可以修改学生成绩,但不能修改其它属性列的值;grantupdateondbo.[cs_view]([score])toliyong:..,每个学生的登录名都为自己在STUDENTS表中的sid,实现每个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。createviewCSasselect*fromchoiceswheresid=current_user;grantselectonCStopublic;:..、【】综合案例1;【】综合案例;四、?实际应用中,哪个更安全些?用户名public指系统的所有当前用户和将来的用户,因此,对pubilc的授权隐含着对所有当前用户和将来用户的授权。在默认情况下,被授权的用户无权把此权限授予其他用户,但SQL允许使用授予权限来指定权限的接受者可以进一步把权限授予其他用户,如果被收回权限的用户已经把权限授予了其他用户,权限的收回会更加复杂数据库中的每个用户都属于public数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给public角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给public角色的权限:..?SQLServer提供了两种类型的数据库角色:固定的数据库角色和用户自定义的数据库角色。服务器角色是指根据SQLServer的管理任务,以及这些任务相对的重要性等级来把具有SQlServer管理职能的用户划分为不同的用户组,每一组所具有的管理SQLServer的权限都是SqlServer置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以使一个用户具有属于同一数据库的多个角色。(实验过程中出现的问题、解决方法、结果如何或其它)在实验过程中由于当时登录的用户是LiYong,当准备删除用户时,没有退出LiYong用户,导致删除不了。可能这只是一个简单的错误,但是在实际中还是很容易发生。