实验三:数据完整性与安全性控制
预习报告
一.实验目的
1.掌握使用不同的方法定义和管理数据库的完整性。
2.掌握 SQL Server 中的登录名,角色以及用户的创建以及使用方法。
3.掌握使用 SQL 语句对数据库和表进行安全控制。
4.掌握规则的创建、使用和删除。(选做实验)
5.掌握默认对象的创建、使用和删除。(选做实验)
二.实验内容
1.利用图形用户界面对实验一中所创建的 Student 库的 S 表中,增加以下的约束和索引。(18
分,每小题 3 分)
(1)非空约束:为出生日期添加非空约束。
答:birth char(9) NOT NULL
(2)主键约束:将学号(sno)设置为主键,主键名为 pk_sno。
答:sno
(3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为 uk_sname。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
(5)CHECK 约束:为 SC 表的成绩(grade)添加 CHECK 约束,约束名为 ck_grade, 其检查条
件为:成绩应该在 0-100 之间。
(6)外键约束:为 SC 表添加外键约束,将 sno,cno 设置为外键,其引用表分别是 S 表和 C
表,外键名称分别为 fk_sno,fk_cno。
2.在图形用户界面中删除以上小题中已经创建的各种约束,用 SQL 语言分别重新创建第 1
题中的(2)-(6)小题.(15 分,每小题 3 分,提示:alter table add constraint)
3.利用图形用户界面根据上述 SC 表中的外键定义画出由 S,C,SC 表构成的数据库关系图。(5
分,提示:选中 student -> 数据关系图)
4.用 SQL 语言删除 S 表中所创建的缺省约束和外键约束。(6 分,每小题 3 分)
5.在图形用户界面中创建新登录名以及用户。(16 分)
(1)根据第五版教材第四章 第 7 题,创建数据库 company 和其中的基本表,并创 建该题
中所需要用到的各个用户以及相关的登录名。(10 分)
(2)用图形用户界面完成以下的权限赋予:(每小题 3 分)
(a)用户王明对两个表均有 Select 和 Insert 的权力。
(b)用户李勇对职工表具有 Select 权力,对工资字段具有更新权力。
6.用 SQL 语句授权和收回权限并对权限加以验证。(40 分,每题 20 分)
(1)根据第五版教材第四章 第 7 题
(2)根据第五版教材第四章 第 8 题。
(提示:(c)和(g)小题可创建合适的视图,针对视图进行授权,
(c)小题用 CURRENT_USER)
选做实验
1.利用 SQL 语言创建,验证和删除规则。
(1)创建一个 ssex_rule 规则(create rule),将其绑定(sp_bindrule)到 S 表的 ssex 性
别字段上(请验证该规则生效,保证了输入的性别只能是“男”或者“女”)。
(2)删除 ssex_rule 规则(注意:规则已绑定到 ssex 表的性别字段上,需要先解除原有
的绑定 sp_unbindrule, drop rule)。
2.利用 SQL 语言创建,验证和删除默认值。
(1)创建一个 ssex_def 默认对象(create default),将其绑定(sp_bindefault)到 S 表的
ssex 性别字段上,使其默认值为“男”(请验证该默认值生效)。
(2)删除 ssex_def(注意:默认对象已绑定到 S 表的 ssex 性别字段上,需要先解除原有
的绑定 sp_unbindefault, dr