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

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!!

文章目录

  • 实验六 模式对象管理与安全管理
    • 【实验目的】
    • 【实验内容】
    • 【实验总结】

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

【实验目的】

  1. 了解模式对象的类型
  2. 掌握命令方式建立表、视图、索引等常见对象的方法
  3. 了解保存点、回退、提交操作
  4. 熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限
  5. 熟练使用建立用户、角色,为用户授权、授予角色的命令

【实验内容】

  1. 创建一个TESTUSER用户,密码为test,默认表空间为users表空间,在users表空间中quota属性为unlimited
  • 编写程序
create user TESTUSER
IDENTIFIED BY test
default tablespace users
quota unlimited on users;
  • 运行结果

  1. 创建用户后为其授予登录数据库和创建数据库对象的权限
  • 编写程序
grant connect,resource to TESTUSER;
  • 运行结果

  1. TESTUSER用户登录数据库
  • 编写程序
conn testuser/test
  • 运行结果

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

4.1.创建学生信息表并插入数据

  • 编写程序
create table stu_table(stu_no char(8) primary key not null,stu_name varchar2(10) not null,stu_sex char(1) not null,stu_grade float not null);insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20180001', 'Lunatic', 'M', 488.2);insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20180002', 'Insane', 'M', 391.5);insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20180003', 'Mad', 'M', 477.8);insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20180004', 'Faze Clan', 'F', 489.2);insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20180005', 'Astralis', 'F', 590.2);
  1. 再继续添加2条数据,设置一个保存点savepoint,再添加1条数据,执行回退到保存点的回退命令。查看此时表中数据
  • 添加2条数据
	insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20210006', 'ARSENAL', 'M', 591.2);insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)values ('20210007', 'Chelsea', 'M', 488.5);
  • 设置一个保存点
savepoint key_rollback;

  • 再添加一条数据
insert into stu_table(stu_no, stu_name, stu_sex, stu_grade)
values ('20210008', 'Man Utd', 'M', '388.7');

  • 回退到保存点的位置
rollback to key_rollback;

  • 查看表中数据,可以看到学号为20210008的学生信息消失。
select * from stu_table;

  1. 查询入学成绩大于480的学生信息
select * from stu_table
where stu_grade > 480;

  1. 建立男生信息视图(创建视图的权限需要提前授予)
  • 授予创建视图的权限(注意切换到有权限的用户下进行授权)
grant create view to testuser;

  • 建立男生信息视图
	create view view_maleasselect * from stu_tablewhere stu_sex = 'M';

  1. 在“成绩”字段上建立B-树索引
create index B_index on testuser.stu_table(stu_grade);

  1. 在testuser用户登录下,创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为:初始化区间大小为100K,第二区间为200K等。
  • 编写程序
create cluster empl_dep(depno varchar2(4))
size 500
tablespace users storage(initial 100 Knext 200 Kminextents 2maxextents 20pctincrease 33
);
  • 运行结果

      ![](https://img-blog.csdnimg.cn/img_convert/2da75772f4e8bb3e1fe4c4a60fec478d.png)
    
  1. 在表簇中建立empl表和dep表
    1. empl表(职员表)的主键为eno,外键为depno (需要先建立dep表)
    • 编写程序
	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 empl_dep(depno);
  • 运行结果

  1. dep表(部门表)的主键为depno。
  • 编写程序
	create table dep(depno varchar(4) primary key,d_name varchar(10) not null,rs number)cluster empl_dep(depno);
  • 运行结果
![](https://img-blog.csdnimg.cn/img_convert/6260e2a01124809151829d3bce727cee.png)
  1. 在表簇中建立一个簇键索引,名为empl_dep_index。
  • 编写程序
create index empl_dep_index
on cluster empl_dep tablespace users;
  • 运行结果

  1. 授予scott用户在empl表上的所有权限,提示:授权和收回权限可在sys/system/testuser用户登录以后进行授权。
    1. 授权
    • 编写程序
grant all on empl to scott;
  • 运行结果

  1. 授权后,更改为scott用户登录,测试是否能对empl表进行查改增删
  • 在这之前先给dep表插入数据

  • 然后到SCOTT用户下对empl表进行操作
    • 登录SCOTT

  • 插入数据


  • 查看数据

  • 删除数据

  • 修改数据

  1. 收回scott用户拥有的empl表上DELETE权限,再次测试scott用户对empl表的删除操作是否还能执行
  • 在testuser用户下收回scott用户拥有的empl表上DELETE权限

  • 登录SCOTT用户测试是否可以对empl表进行删除

【实验总结】

本次实验着重介绍了模式对象管理和安全管理的知识。通过实验,我们学习了创建用户、授权和权限设置的方法,以及使用命令创建表、视图、索引等数据库对象的技巧。我们还学会了保存点、回退和提交操作的运用,以及如何建立和管理用户角色和权限。此外,我们还学习了在表簇中建立索引和授予权限的操作。通过这次实验,我们对数据库的结构管理和安全性有了更深入的理解,为今后的数据库管理工作打下了坚实基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt5.15.2中加入图片资源

系列文章目录 文章目录 系列文章目录前言一、加入图片资源二、代码 前言 以前用的Qt5.15.2之前的版本,QtCreator默认的工程文件是*.pro,现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时,仍然可以使用pro工程文件用QtCr…

#laravel 通过手动安装依赖PHPExcel#

场景:在使用laravel框架的时候,需要读取excel,使用 composer install XXXX 安装excel失败,根据报错提示,php不兼容。 因为PHPHExcel使用的php版本 和项目运所需要的php 版本不兼容,php8的版本 解决方法:下载手工安装&a…

softmax回实战

1.数据集 MNIST数据集 (LeCun et al., 1998) 是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集 (Xiao et al., 2017)。 import torch import torchvision from torch.utils import data from torchvisi…

JVM篇--垃圾回收高频面试题

JVM垃圾回收 1 简单说下Java垃圾回收机制? 首先在java运行过程中,其实程序员并不需要去显示的调用程序来释放对象的内存,而是由虚拟机来完成的,具体来看是在jvm中有个垃圾回收线程,这个线程是个守护线程,…

用Java实现01背包问题 用贪心算法

贪心算法不是解决01背包问题的有效方法,因为贪心算法只能保证得到一个近似最优解,而无法保证得到最优解。因此,我们需要使用动态规划来解决01背包问题。以下是使用Java实现的动态规划解法: public class KnapsackProblem {public…

Leetcode 用队列实现栈

题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并…

【c++笔记】用c++解决一系列质数问题!

质数是c语言和c中比较常见的数学问题,本篇文章将带你走进有关质数的一系列基础问题,其中包含常见的思路总结,本篇文章过后,将会持续更新c算法系列,感兴趣的话麻烦点个关注吧! 希望能给您带来帮助&#xff…

零基础学Python(2)— 安装Python开发工具之PyCharm

前言:Hello大家好,我是小哥谈。PyCharm是由JetBrains公司开发的一款Python开发工具。在Windows、Mac OS和Linux操作系统中都可以使用。它具有语法高亮显示、Project(项目)管理代码跳转、智能提示、自动完成、调试、单元测试和版本…

C++——函数的常见样式

常见的函数样式有4种&#xff0c;即在函数定义过程中函数的四种格式&#xff0c;他们也分别对应了四种调用方法&#xff1a; 1&#xff0c;无参无返 2&#xff0c;有参无返 3&#xff0c;无参有返 4&#xff0c;有参有返 示例&#xff1a; #include<bits/stdc.h> u…

操作符infer的作用是什么?

在 TypeScript 中&#xff0c;infer 关键字用于推断类型变量。它通常与条件类型&#xff08;Conditional Types&#xff09;一起使用&#xff0c;用于从条件类型中提取并推断出类型。 条件类型是一种非常强大的类型操作工具&#xff0c;可以根据给定的条件选择不同的类型。而 …

x-cmd pkg | yt-dlp - 专注于 YouTube 的下载工具

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 yt-dlp 是一款强大的命令行下载工具&#xff0c;专注于下载 YouTube 视频和音频。它是 youtube-dl 的一个改进和拓展版本&#xff0c;提供了更多功能和修复了一些问题。 yt-dlp 具有灵活的支持&#xff0c;可下载 Yo…

武汉灰京文化:手游市场游戏体验和社交互动的新趋势

随着移动设备的普及和技术的不断提高&#xff0c;手游市场正在迎来全新的发展时期。用户的游戏习惯正在发生重大变化&#xff0c;他们越来越倾向于随时随地玩游戏。手游的便携性使得用户可以在公交车上、休息时间或等待朋友时轻松进行游戏。这种随时随地的游戏体验满足了现代生…

static 关键字的用法

1.static关键字修饰的(静态方法) 使用static关键字修饰的方法的调用方式 调用方式1:如果是在当前类的static方法中&#xff0c;则直接调用 调用方式2:如果是在其他类的static方法中&#xff0c;则需要通过类名.方法()调用 备注1:普通方法(没有使用staitc关键字修饰的方法)允许调…

裸辞后的焦虑与挑战:如何成功跨行业找到满意工作?

裸辞后的焦虑 在最近一个平常的晚上&#xff0c;我吃完饭后像往常一样坐在沙发上休息。突然&#xff0c;电话铃声响起&#xff0c;是来自久未联系的姐夫。寒暄过后&#xff0c;他透露出他的焦虑&#xff1a;外甥女小桦自从四五个月前辞职后&#xff0c;至今还没有找到新的工作…

【成本价特惠】招募证书代理:工信部、PMP、阿里云、华为等认证,机会难得!

扫码和我联系 亲爱的读者朋友们&#xff0c; 今天&#xff0c;我想和大家分享一个难得的机会。我们目前正在积极招募各类证书的代理&#xff0c;包括工信部的证书、PMP&#xff08;项目管理专业人士&#xff09;证书、阿里云证书、华为证书、OCP 证书、CFA 证书等。这些证书在…

最大流—EK算法,流网络,残留网络,定理证明,详细代码

文章目录 零、卡车运输一、流网络1.1流网络1.2流1.3最大流1.4残留网络1.5增广路径1.6流网络的割1.7最大流最小割定理1.7.1证明 1.8Ford-Fulkerson方法 二、Edmonds-Karp算法2.1定义2.2EK算法的实现2.3EK算法详细代码2.4OJ练习 零、卡车运输 Lucky Puck公司有冰球工厂Vancouver…

Unity导出Android项目踩坑记录

导出的时候需要注意以下地方的配置&#xff1a; 1、buildSetting-> 设置ExportProject 2、buildsetting ->playerSetting ->设置IL2CPP 3、设置ndk edit->preferences->external tools->ndk 如果unity的ndk版本和android项目里的ndk版本不一致会报错&…

【Qt开发】初识Qt

文章目录 1. Qt的背景1.1 Qt是什么1.2 Qt的发展史1.3 Qt支持的平台 2. Qt开发环境的搭建2.1 Qt SDK下载2.2 Qt SDK的安装 3. 一个简单的Qt模板程序的创建4. Qt模板程序的代码讲解4.1 main.cpp4.2 widget.h4.3 widget.cpp4.4 widget.ui4.5 test_1_18.pro4.6 一些中间文件 5. Qt在…

keil软件仿真

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要…

ubuntu opencv 编译contrib库

OpenCV4.6.0 注意opencv的版本和opencv_contrib的版本需要一致&#xff0c;反正我编译opencv-4.6.0和opencv_contrib_4.x不成功。 提前安装GTK库&#xff0c;不然不能用imshow这些显示的功能。 sudo apt install libgtk2.0-dev # git clone https://github.com/opencv/opencv…