




已阅读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年春湖南中医药大学
- JJF1033-2023计量标准考核规范
- 专题四第1课二、《智能家居系统》说课稿 2023-2024学年青岛版(2018)初中信息技术八年级上册
- 江西省赣州市兴国三中重点达标名校2025届中考试题猜想生物试卷含解析
- 2025海南省交通投资控股限公司招聘30人高频重点提升(共500题)附带答案详解
- 湖北澜图工程设计有限公司招聘笔试冲刺题2025
- 《中国文化导论》课程考试复习题库及答案
- 《江苏省民用建筑工程消防验收常见问题解析及防治指南》2023版
- DB3701T 29-2022 智慧中药房建设与运行规范
- 2024-2025学年上学期广州六年级英语期末模拟卷1
评论
0/150
提交评论