重庆文理学院软件工程学院
实 验 报 告 册
专 业:软件工程
班 级:_软件一班 _______
学 号:_201258014009______ ___ 姓 名:_杨玉玲______ ___________ 课程名称:oracle数据库 指导教师:李瑞
2014年11月03日
实验序号 实验地点 3 S-C1301/S-A1310 实验名称 实验日期 用户及权限,完整性约束 2014年11月 3日 1. 创建用户user1,user2,user3,user4,user5; 2. 把查询manager表的权限授给用户User1; 3. 把对manager表和JOBS表的全部操作权限授予用户User2和User3; 4. 把对表MANAGER的查询权限授予所有用户; 5. 把查询manager表和修改雇员编号的权限授给用户User4; 6. 把对表MANAGER的INSERT权限授予User5用户,并允许将此权限再授予其他用户; 7. 把用户User4修改经理编号的权限收回; 实 验 内 容 8. 收回所有用户对表MANAGER的查询权限; 9. 把用户User5对MANAGER表的INSERT权限收回; 10. 建立2个表,一个是stuInfo(学号sno,姓名sname,年龄sage,性别smale,系编号deptNo),一个是department(系编号deptNo,系名称deptName)。 要求: 每个表有主键,stuInfo表建立外键,学生的姓名不能为空,学生的年龄要在18到50之间,学生的性别必须是男女之一,默认是男。stuInfo表的deptNo列,要参照department表的deptNo列; 11. 添加约束:允许stuInfo中的姓名可以为空;允许stuInfo中的姓名不能重复;创建deptName_check,要求department的系名称列的内容,必须大于4个字符长度; 12. 删除约束:删除刚才建立的department表上的deptName_check 约束,删除主键语句; 13. 删除主键被引用的表department。 1. 创建用户user1,user2,user3,user4,user5;
create user user1 identified by user1; create user user2 identified by user2; create user user3 identified by user3; create user user4 identified by user4; create user user5 identified by user5;
实 验 过 程 及 步 骤
2. 把查询manager表的权限授给用户User1; 先在hr下根据employee表创建manager表
create table manager as select
EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,JOB_ID,SALARY,MANAGER_ID from employees where 1>2;
grant select on hr.manager to user1;
grant create session to user1;
select * from hr.manager;
3. 把对manager表和JOBS表的全部操作权限授予用户User2和User3;
grant all on hr.jobs to user2,user3; grant all on hr.manager to user2,user3;
grant create session to user2,user3;
结果:
4. 把对表MANAGER的查询权限授予所有用户;
grant select on hr.manager to user1,user2,user3,user4,user5;
或者是:
grant select on hr.manager to public;
5. 把查询manager表和修改雇员编号的权限授给用户User4;
grant select,update(EMPLOYEE_ID) on hr.manager to user4;
6. 把对表MANAGER的INSERT权限授予User5用户,并允许将此权限再授予其
他用户;
grant insert on hr.manager to user5 with grant option;
7.把用户User4修改经理编号的权限收回;
revoke update on hr.manager from user4;
8. 收回所有用户对表MANAGER的查询权限;
revoke select on hr.manager from user1,user2,user3,user4,user5;
9. 把用户User5对MANAGER表的INSERT权限收回;
revoke insert on hr.manager from user5;
10. 建立2个表,一个是stuInfo(学号sno,姓名sname,年龄sage,性别
smale,系编号deptNo),一个是department(系编号deptNo,系名称deptName)。
要求: 每个表有主键,stuInfo表建立外键,学生的姓名不能为空,学生的年龄要在18到50之间,学生的性别必须是男女之一,默认是男。stuInfo表的deptNo列,要参照department表的deptNo列;
create table department(
deptNo varchar2(20) constraint pk_dept primary key, deptName varchar2(20) );
create table stuInfo(
sno number constraint pk_stu primary key, sname varchar2(10) not null, sage int,
smale char(4) default '男' check(smale in('男','女')), deptNo varchar2(20),
foreign key(deptNo) references department(deptNo), constraint CS_AGE check(sage>18 and sage<50) );
11. 添加约束:允许stuInfo中的姓名可以为空;允许stuInfo中的姓名不
能重复;创建deptName_check,要求department的系名称列的内容,必须大于4个字符长度;
alter table stuInfo modify sname null;
alter table stuInfo add constraints sname_unique unique(sname);
alter table department add constraints deptName_check check(length(deptName)>4);
12. 删除约束:删除刚才建立的department表上的deptName_check 约束,
删除主键语句;
alter table department drop constraints deptName_check;
alter table department drop primary key cascade;
13. 删除主键被引用的表department。
drop table department cascade constraints;
实 验 结 果 及 分
实验过程中存在的问题和解决方法
通过这次实验,我对于用户权限管理和完整性约束的知识有了进一步的掌握,顺利完成了实验中所有的内容,对于不太清楚的问题查看了ppt,并上网查看了相关文档。
析 教 师 评 阅
成绩:A 教师签名:李瑞 2014年3月22日
因篇幅问题不能全部显示,请点此查看更多更全内容