已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州科技学院数理学院实验报告课程名称数据库原理与应用A班 级信计1412学 号姓 名 实验地点逸夫楼236 实验日期5、25 实验学时2学时 实验名称实验八 数据完整性和安全性实验类型 验证性 综合性设计性实验目的:数据完整性方面:l 掌握域完整性的实现方法。l 掌握实体完整性的实现方法。l 掌握参照完整性的方法。数据库安全性方面:l 掌握SQL Server身份验证模式。l 掌握创建登录账户、数据库用户的方法。l 掌握使用角色实现数据库安全性的方法。l 掌握权限的分配。实验内容:数据完整性方面:数据库的完整性设置。数据库的安全性方面:1、设置身份验证模式:Windows身份验证模式和混合模验证模式。2、设置登录账户3、设置数据库用户4、设置数据库角色。5、设置管理对象的权限实验内容及步骤 (记录实验的过程):案例学习3.1 数据完整性管理l 可视化界面的操作方法: 实体完整性 1将student表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮设置主键。如图1所示: 图11 将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并按住Ctrl键拖动左边的行选定块,选定sno和cno字段,单击工具按钮设置主键。如图2所示:图2 域完整性3. 将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击鼠标右键CHECK约束,添加约束,添加CK_student_sex名称,然后在约束表达式框中输入“ ssex in (男,女) ”。如图3所示。图3 参照完整性4. 将“student”表和“sc”表中的“sno”字段设为参照: 打开“sc”表的设计界面, 点击工具栏按钮, 在弹出的属性(properties)对话框中点击“新建”按钮,在“主键表(Primary key table)”下拉框中选择“student”表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择“sc”表,在其下的字段选择框中选择“sno”,单击关闭即可。见图4。 图4l 命令方式操作方法: 实体完整性1将“student”表的“sno”字段设为主键:当“student”表已存在则执行:alter table student add constraint pk_sno primary key (sno)当“student”表不存在则执行: Create table student(sno CHAR(5) primary key , sname CHAR(10) NOT NULL,ssex CHAR(2),sage int,sdept CHAR(4) 注:可用命令“drop table student”删除“student”表2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)Alter table student add id char(18) unique (id)3. 将“sc”表的“sno”和“cno”设置为主键:当“sc”表已存在则执行:alter table sc add constraint PK_SnoCno primary key (sno,cno)当“sc”表不存在则执行:Create table sc(sno CHAR(5),cno CHAR(2),gradeINT NULL,constraint PK_SnoCno primary key (sno,cno) 域完整性4. 将“ssex”字段设置为只能取“男”,“女”两值:当“student”表已存在则执行:alter table student add constraint CK_Sex check (ssex in (男 ,女)当“student”表不存在则执行:Create table student(sno CHAR(5) primary key , sname CHAR(10),ssex CHAR(2) check (ssex in (男 ,女) ,sage int, sdept CHAR(4)5. 设置学号字段只能输入数字: alter table student add constraint CK_Sno_Format check (sno like 0-90-90-90-90-9)6. 设置身份证号的输入格式:alter table student add constraint CK_ID_Format check (id like 0-90-90-90-90-90-91-20-90-90-90-10-90-30-90-90-90-9_) OR (id like 0-90-90-90-90-90-90-90-90-10-90-30-90-90-90-9)7. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)alter table student add constraint CK_ID_Format2 check (len(id)=18 and ( (convert(smallint,substring(id,7,4) )=1900) and(convert(smallint,substring(id,7,4) )=22 or ssex=女 and sage=20 ) 参照完整性 9. 将“student”表和“sc”表中的“sno”字段设为参照:当“sc”表已存在则执行:alter table sc add constraint FP_sno foreign key (sno) references student(sno )当“sc”表不存在则执行:Create table sc(sno CHAR(5) constraint FP_sno foreign key references student(sno),cno CHAR(2),gradeINT NULL,constraint PK_SnoCno primary key (sno,cno) )l 完整性验证1 实体完整性: 在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如图5所示:图5或者在命令窗口输入下面两条命令也会出现错误提示:insert into student values(95003,张三,男,24,CSinsert into student values(95001,李四,女,21,CS图6下面的语句用来验证“sc”表中的实体完整性:insert into sc values(95002, 10,65)insert into sc values(95002, 10,90) 图72. 域完整性: 使用下面的语句验证“ssex”字段的域完整性:insert into student values(95009,张匀,大,20,CS,3参照完整性:使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):insert into sc values(98998, 10,98)3.2 数据库安全性管理1.设置身份验证模式 依次单击开始所有程序SQL Server 2005SQL Server Management Studio 启动SQL Server 2005数据库管理系统 连接成功后,右键你的实例,选择属性 在属性窗口中, 转到Security(安全性)项,在服务器身份验证中设置为SQL Server和Windows身份验证模式, 确定,根据提示,应该重新启动sql服务 然后执行下面的语句启用sa用户, 同时清除sa的密码(能成功登陆后再根据你的需要设置)EXEC sp_password null,null,saALTER LOGIN sa ENABLE 语句执行完成后, 再用sa连接你的实例, 应该就没有问题了.2.设置登录账户 创建使用 Windows 身份验证 (SQL Server Management Studio) 的 SQL Server 登录名 在 SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。 右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。 在“常规”页上的“登录名”框中输入一个 Windows 用户名。 选择“Windows 身份验证”。 单击“确定”。 创建使用 SQL Server 身份验证 (SQL Server Management Studio) 的 SQL Server 登录名 在 SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。 右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。 在“常规”页上的“登录名”框中输入一个新登录名的名称。 选择“SQL Server 身份验证”。 输入登录名的密码。 选择应当应用于新登录名的密码策略选项。通常,强制密码策略是更安全的选择。 单击“确定”。 通过 Transact-SQL 创建使用 Windows 身份验证的 SQL Server 登录名 在查询编辑器中,输入以下 Transact-SQL 命令:CREATE LOGIN FROM WINDOWS; GO 通过 Transact-SQL 创建使用 SQL Server 身份验证的 SQL Server 登录名 在查询编辑器中,输入以下 Transact-SQL 命令:CREATE LOGIN WITH PASSWORD = ; GO3.设置数据库用户 创建数据库用户 在 SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。 依次展开数据库,某个具体数据库,“用户” 右键单击用户,选择“新建用户” 输入用户名,选择登录名,确定 通过 Transact-SQL 创建数据库用户(create user): create user dba for login dba with default_schema=dbo 并指定数据库用户“dba” 的默认 schema 是“dbo”。这意味着 用户“dba” 在执行“select * from t”,实际上执行的是 “select * from dbo.t”。 4设置数据库角色 新建角色 在 SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。 依次展开数据库,某个具体数据库,“角色” 右击选中新建角色 通过 Transact-SQL新建角色:CREATE ROLE role_name 在对象资源管理器中设置数据库角色 在 SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。 依次展开数据库,某个具体数据库,“用户” 选中某用户,右击“属性”,在展开的数据库用户属性对话框中进行设置 通过 Transact-SQL设置数据库角色 通过加入数据库角色,赋予数据库用户“dba”权限: exec sp_addrolemember db_owner, dba 此时,dba 就可以全权管理数据库 mydb 中的对象了。 如果想让 SQL Server 登陆帐户“dba”访问多个数据库,比如 mydb2。可以让 sa 执行下面的语句: use mydb2 go create user dba for login dba with default_schema=dbo go exec sp_addrolemember db_owner, dba go 此时,dba 就可以有两个数据库 mydb, mydb2 的管理权限了! 5.设置管理对象的权限 在对象资源管理器中授权: 选中需要授权的登录名、用户名或角色名 右键单击选择“属性”,在弹出的该对象的属性窗口中选择“安全对象”,进行权限分配 通过 Transact-SQL分配权限:通过GRANT和REVOKE语句4、 自己动手实验: 4.1 数据库完整性方面1、 请用至少2种方法定义stu数据库中student表的主键sno;alter table student add constraint pk_sno primary key (sno)2、 为表course中的字段cname添加唯一值约束; alter table course add constraint cname_unique unique(cname)3、 对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:1) 删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;2) 修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;3) 修改course表cno字段值时,该字段在sc表中的对应值也应修改;4) 删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录; (5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入; alter table SC add constraint FP_sno foreign key(sno) references Student(sno) alter table SCadd constraint FP_cno foreign key(cno) references course(cno) 4、定义check约束,要求学生学号sno必须为10位字符,且不能以0开头,第二三位皆为0;check(sno like000_ ) Alter table student Add contraint pk_sno Check (sno like 1-1000 0-10 0-10 0-10 0-10 0-10 0-10)5、 定义stu数据库中student表中学生年龄值在16-25范围内; Alter table student Add contraint CK_age Check (sage=16 and sage=25)6、 定义stu数据库中student表中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州六盘水市水成能源(集团)有限责任公司人才引进总及事宜笔试历年参考题库附带答案详解
- 2025西南证券股份有限公司招聘笔试历年参考题库附带答案详解
- 2025联通灵境视讯(江西)科技有限公司数据标注实习生招聘10人笔试历年参考题库附带答案详解
- 2025秋中国南水北调集团新能源投资有限公司校园招聘(25人)笔试历年参考题库附带答案详解
- 2025福建福州高新区水务科技有限公司招用2人笔试历年参考题库附带答案详解
- 2025年四川省广安市中考化学试题(学生版)
- CN115871544B 基于adas摄像头的车辆控制方法、装置及车辆 (北汽福田汽车股份有限公司)
- 幼儿园公开课评课评语
- CN115828679B 一种基于有限元理论的绝缘油中流注放电的仿真方法 (昆明理工大学)
- 五年级品德与社会下册 第三单元 红红的中国结 第8课《方块字里探险春秋》教案 粤教版
- 2025年抗肿瘤药物处方考核试题及答案
- 2024年新疆生产建设兵团兴新职业技术学院公开招聘辅导员笔试题含答案
- T-CFLP 0016-2023《国有企业采购操作规范》【2023修订版】
- 无人机足球课件
- 企业厂务公开工作汇报
- 2025版医疗行业财务外包服务合同提高医院运营效益
- (高清版)DBJ∕T 13-318-2025 《建筑施工盘扣式钢管脚手架安全技术标准》
- 基于贝叶斯优化的同步EEG和MEG的组合源定位算法设计
- DB32/T 4462-2023河道管理范围内建设项目防洪评价技术规程
- 如何做好临床护理工作
- 同理心培训课件
评论
0/150
提交评论