实验六 模式对象管理与安全管理

实验六 模式对象管理与安全管理

【实验目的】

  1. 了解模式对象的类型

  2. 掌握在OEM中操作模式对象的方法

  3. 掌握命令方式建立表、视图、索引等常见对象的方法

  4. 熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限

  5. 熟练使用建立用户、角色,为用户授权、授予角色的命令

【实验内容】

  1. 创建一个TESTUSET用户,密码为test,默认表空间为user表空间

    create user TESTUSER
    identified by test
    default tablespace users;
    

在这里插入图片描述

  1. 创建用户后为其授予登录数据库和创建数据库对象的权限

    grant connect, resource to testuser;
    

在这里插入图片描述

  1. TESTUSER用户登录数据库

    conn testuser/test
    

在这里插入图片描述

  1. 创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目:

    • 创建表

      create table stu_info
      (
          stu_no    char(8) primary key not null,
          stu_name  varchar(10) not null,
          stu_sex   char(1)     not null, /*male or female*/
          stu_grade float       not null
      );
      

在这里插入图片描述

  • 插入数据

    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20180001', 'Lunatic', 'M', '488.2');
    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20180002', 'Insane', 'M', '391.5');
    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20180003', 'Mad', 'M', '477.8');
    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20180004', 'Faze Clan', 'F', '489.2');
    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20180005', 'Astralis', 'F', '590.2');
    

在这里插入图片描述

(1) 再继续添加2条数据,设置一个保存点savepoint,再添加1条数据,执行回退到保存点的回退命令。查看此时表中数据。

  • 再次插入数据

    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20200006', 'ARSENAL', 'M', '591.2');
    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20200007', 'Chelsea', 'M', '488.5');
    

在这里插入图片描述

  • 设置保存点

    savepoint key_pointer;
    

在这里插入图片描述

  • 再添加一条数据

    insert into stu_info(stu_no, stu_name, stu_sex, stu_grade)
    values ('20200008', 'Man Utd', 'M', '388.7');
    

在这里插入图片描述

  • 执行回退到保存点的回退命令

    rollback to key_pointer;
    

在这里插入图片描述

  • 查看此时表中数据

    select * from stu_info;
    

在这里插入图片描述

(2) 查询入学成绩大于480的学生信息

select * from stu_info where stu_grade > 480;

在这里插入图片描述

(3) 建立男生信息视图(创建视图的权限需要提前授予)

  • 授予创建视图的权限

    grant dba to testuser;
    

在这里插入图片描述

  • 创建男生信息视图

    create view view_male
    as
    select STU_NO,
           STU_NAME,
           STU_SEX,
           STU_GRADE
    from STU_INFO
    where STU_SEX = 'M';
    

在这里插入图片描述

(4) 在“成绩”字段上建立B-树索引

create index B_tree_index on TESTUSER.STU_INFO(STU_GRADE);

在这里插入图片描述

  1. 创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为,初始化区间大小为 100 K 100K 100K,第二区间为 200 K 200K 200K等。

    create cluster emp1_dep(depno varchar2(4))
        size 500
        tablespace users storage (
        initial 100 K
        next 200 K
        minextents 2
        maxextents 20
        pctincrease 33
        );
    

在这里插入图片描述

  1. 在表簇中建立empl表和dep

    (1) empl表(职员表)的主键为eno,外键为depno

    create table empl
    (
        e_no   varchar(10) primary key,
        e_name varchar(10) not null,
        e_sex  varchar(2),
        depno  varchar(4)  not null references dep
    )
        cluster emp1_dep (depno);
    

在这里插入图片描述

(2) dep表(部门表)的主键为depno

create table dep
(
    depno  varchar(4) primary key,
    d_name varchar(10) not null,
    rs     number
)
    cluster emp1_dep (depno);

在这里插入图片描述

  1. 在表簇中建立一个簇键索引,名为empl_dep_index

    create index empl_dep_index
        on cluster emp1_dep tablespace users;
    

在这里插入图片描述

  1. 授予TESTUSER用户在empl表上的所有权限

    grant all on empl to testuser;
    

在这里插入图片描述

  1. 收回empl表上DELETE权限

    revoke delete on dep from testuser;
    

在这里插入图片描述

【实验心得】

创建用户命令只是创建用户的第一步,设定相关参数,并赋予相应权限之后才是完整的创建了一个可供实际操作的用户。

簇表由一组拥有相同的列而且经常被一起使用的数据表构成,优点是join簇表所需的磁盘I/O减少,连接簇表时间减少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值