试验八数据完整性和安全性
苏州科技学院数理学院 实验报告 课程名称数据库原理与应用 A 班级 实验地点 实验名称 实验类型 信计 1412 逸夫楼 236 学号 实验日期 0 5、25 姓名 实验学时 0 2 学时 实验八数据完整性和安全性 √验证性 综合性 □ 设计性 实验目的 数据完整性方面 掌握域完整性的实现方法。 掌握实体完整性的实现方法。 掌握参照完整性的方法。 数据库安全性方面 掌握 SQL Server 身份验证模式。 掌握创建登录账户、数据库用户的方法。 掌握使用角色实现数据库安全性的方法。 掌握权限的分配。 实验内容 数据完整性方面 数据库的完整性设置。 数据库的安全性方面 1、设置身份验证模式Windows身份验证模式和混合模验证模式。 2、设置登录账户 3、设置数据库用户 4、设置数据库角色。 5、设置管理对象的权限 实验内容及步骤实验内容及步骤 (记录实验的过程)(记录实验的过程) 案例学习案例学习 3.13.1 数据完整性管理数据完整性管理 可视化界面的操作方法 实体完整性 1.将 student 表的“sno”字段设为主键在表设计界面中,单击左边的行选定块,选定 “sno”字段,单击工具按钮设置主键。如图 1 所示 图 1 1. 将“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。 图 4 命令方式操作方法 实体完整性 1.将“student”表的“sno”字段设为主键 当“student”表已存在则执行 alter table student add constraint pk_sno primary key sno 当“student”表不存在则执行 Create table studentsno CHAR5 primary key , sname CHAR10 NOT NULL, ssexCHAR2, sage int, sdept CHAR4 注注 可用命令“drop table student”删除“student”表 2. 添加一身份证号字段,设置其惟一性.注 操作前应删除表中的所有记录 Alter table student add id char18 unique id 3. 将“sc”表的“sno”和“cno”设置为主键 当“sc”表已存在则执行 alter table sc add constraint PK_SnoCno primary key sno,cno 当“sc”表不存在则执行 Create table scsno CHAR5, cno CHAR2, grade INT NULL, constraint PK_SnoCno primary key sno,cno 域完整性 4. 将“ssex”字段设置为只能取“男”,“女”两值 当“student”表已存在则执行 alter table student add constraint CK_Sex check ssex in 男 ,女 当“student”表不存在则执行 Create table studentsno CHAR5 primary key , sname CHAR10, ssexCHAR2 check ssex in 男 ,女 , sage int, sdept CHAR4 5. 设置学号字段只能输入数字 alter table student add constraint CK_Sno_at check sno like [0-9][0-9][0-9][0-9][0-9] 6. 设置身份证号的输入格式 alter table student add constraint CK_ID_at check id like [0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_ OR id like [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9] 7. 设置 18 位身份证号的第 7 位到第 10 位为合法的年份1900-2050 alter table student add constraint CK_ID_at2 check lenid18 and convertsmallint,substringid,7,4 1900 andconvertsmallint,substringid,7,4 22 or ssex女 and sage20 参照完整性参照完整性 9. 将“student”表和“sc”表中的“sno”字段设为参照 当“sc”表已存在则执行 alter table sc addconstraintFP_sno foreign key sno references studentsno 当“sc”表不存在则执行 Create table scsno CHAR5constraintFP_sno foreign key references studentsno, cno CHAR2,gradeINT NULL, constraint PK_SnoCno primary key sno,cno 完整性验证 1. 实体完整性 在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出 现错误如图 5 所示 图 5 或者在命令窗口输入下面两条命令也会出现错误提示 insert into student values95003,张三,男 ,24,CS,42222919901012903X insert into student values