山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库 同组者: 实验日期: 2018.5.22
实验四 数据库安全性和完整性
一.实验目的
1.加深对数据库安全性和完整性的理解 2.学会授权与回收
3.理解并体会数据库实体完整性、参照完整性、用户定义的完整性约束条件的作用
二.实验内容
用户 sa SQL语言:
select * from s;
select * from p; select * from j; select * from spj;
--1.设置用户a对SPJ表的查询权限。
create login a with paword = \'aaaaaaaa\';
create user a;
grant select on spj to a with grant option;
--2.设置用户b对S表、P表具有修改的权限,并要求b能够将该权限授予其它用户c,并验证用户c具有该权限。 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库 同组者: 实验日期: 2018.5.22 create login b with paword = \'bbbbbbbb\'; create login c with paword = \'cccccccc\'; create user b; create user c;
grant select,update on s to b with grant option;
grant select,update on p to b with grant option;
--3.收回用户a、b的权限,并验证用户c权限的情况。 revoke select on spj from a cascade;
revoke select, update on s from b cascade;
revoke select, update on p from b cascade;
--4.对实验1中创建的表,用图形用户界面建立外键联系,并验证外键的作用。 delete from s where sno=\'s1\'; 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库 同组者: 实验日期: 2018.5.22
--5.对实验1中创建的表,设置零件的颜色必须在红、橙、黄、绿、青、蓝、紫 七种颜色范围内,零件重量不能超过50的约束条件,并给这两种约束条件命名。 alter table p add constraint c1 check(color in (\'红\',\'橙\',\'黄\',\'绿\',\'青\',\'蓝\',\'紫\'));
alter table p add constraint c2 check(weight
--6.设置SPJ表中供应零件的数量都不能超过1000 alter table spj add constraint c3 check(qit
--7.设置S表中的供应商号以字母‘S’开头 alter table s add constraint c4 check(sno like \'S%\'); 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库 同组者: 实验日期: 2018.5.22
--8.验证各个表的实体完整性。
--验证P表 insert into p values (\'P7\',\'齿轮\',\'黑\',40);
insert into p values (\'P7\',\'齿轮\',\'黑\',50);
insert into p values (\'P7\',\'齿轮\',\'黄\',20);
--验证SPJ表 insert into spj(qit) values (2000);
insert into spj(qit) values (999); 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库 同组者: 实验日期: 2018.5.22
--验证S表
insert into s(sno) values (\'A1\');
insert into s(sno) values (\'S6\');
用户a SQL语言:
select * from spj;
select * from s; 用户b SQL语言:
grant select,update
on s to c;
grant select,update on p to c;
update p set color=\'黄\' where pno=\'p1\'; 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库 同组者: 实验日期: 2018.5.22
update s set status=10 where sno=\'s1\';
select * from s; 用户c SQL语言:
update p set color=\'黄\' where pno=\'p1\';
select * from p;