【实验目的】
- 了解模式对象的类型
- 掌握命令方式建立表、视图、索引等常见对象的方法
- 了解保存点、回退、提交操作
- 熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限
- 熟练使用建立用户、角色,为用户授权、授予角色的命令
【实验内容】
- 创建一个TESTUSER用户,密码为test,默认表空间为users表空间,在users表空间中quota属性为unlimited
- 创建用户后为其授予登录数据库和创建数据库对象的权限
- TESTUSER用户登录数据库
- 创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目:
- 再继续添加2条数据,设置一个保存点savepoint,再添加1条数据,执行回退到保存点的回退命令。查看此时表中数据
- 查询入学成绩大于480的学生信息
- 建立男生信息视图(创建视图的权限需要提前授予)
- 在“成绩”字段上建立B-树索引
- 在testuser用户登录下,创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为:初始化区间大小为100K,第二区间为200K等。
- 在表簇中建立empl表和dep表
- empl表(职员表)的主键为eno,外键为depno
- dep表(部门表)的主键为depno。
- 在表簇中建立一个簇键索引,名为empl_dep_index。
- 授予scott用户在empl表上的所有权限,提示:授权和收回权限可在sys/system/testuser用户登录以后进行授权。
(1)授权后,更改为scott用户登录,测试是否能对empl表进行查改增删
- 收回scott用户拥有的empl表上DELETE权限,再次测试scott用户对empl表的删除操作是否还能执行
【实验记录】
- 创建一个TESTUSER用户,密码为test,默认表空间为users表空间,在users表空间中quota属性为unlimited
登录系统管理员
按题目要求创建用户
- 创建用户后为其授予登录数据库和创建数据库对象的权限
- TESTUSER用户登录数据库
- 创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目:
创建表并添加了五条数据
- 再继续添加2条数据,设置一个保存点savepoint,再添加1条数据,执行回退到保存点的回退命令。查看此时表中数据
再添加两条数据
设置一个保存点
再添加一条数据
执行回退到保存点的回退命令(此处因为将保存点的名字也命名为了savepoint,需要输入两个savepoint才能成功回退,否则提示需要保存点名称,具体见实验总结)
查看此时表中数据
- 查询入学成绩大于480的学生信息
- 建立男生信息视图(创建视图的权限需要提前授予)
在系统管理员下授予视图权限
返回testuser用户。创建视图
查看是否建立成功
建立成功
- 在“成绩”字段上建立B-树索引
- 在testuser用户登录下,创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为:初始化区间大小为100K,第二区间为200K等。
- 在表簇中建立empl表和dep表
- empl表(职员表)的主键为eno,外键为depno
- dep表(部门表)的主键为depno。
- 在表簇中建立一个簇键索引,名为empl_dep_index。
- 授予scott用户在empl表上的所有权限,提示:授权和收回权限可在sys/system/testuser用户登录以后进行授权。
在testuser用户下进行授权
(1)授权后,更改为scott用户登录,测试是否能对empl表进行查改增删
先在dep表下建立两个部门
更改为scott用户登录
测试增加操作
测试查询操作
测试修改操作
测试删除操作
- 收回scott用户拥有的empl表上DELETE权限,再次测试scott用户对empl表的删除操作是否还能执行
在sysdba下收回权限
在scott下测试删除操作
即删除操作已经不能执行。
【实验小结】
报错:
这是因为设置保存点时将保存点的名字也设置成了savepoint,使得数据库不能正确识别,解决方案是输入两遍savepoint,第一个用于指明类型,第二个用于指明名称。更好的解决方式是避免使用关键字。