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

🕺作者: 主页

我的专栏
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…

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中有个垃圾回收线程,这个线程是个守护线程,…

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…

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

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

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

随着移动设备的普及和技术的不断提高&#xff0c;手游市场正在迎来全新的发展时期。用户的游戏习惯正在发生重大变化&#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;机器学习这门技术也越来越重要…

vue基于Spring Boot框架的甘肃敦煌文化旅游管理系统

本敦煌文化旅游管理系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了用户和管理员这两者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;尽可能优…

(蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)

能够表示为某个整数的平方的数字称为“平方数 虽然无法立即说出某个数是平方数&#xff0c;但经常可以断定某个数不是平方数。因为平方数的末位只可能是:0,1,4,5,6,9 这 6 个数字中的某个。所以&#xff0c;4325435332 必然不是平方数。 如果给你一个 2 位或 2 位以上的数字&am…

六、标准对话框、多应用窗体

一、标准对话框 Qt提供了一些常用的标准对话框&#xff0c;如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等。1、预定义标准对话框 &#xff08;1&#xff09;QFileDialog 文件对话框 QString getOpenFileName() 打开一个文件QstringList ge…

You need to add dependency of ‘poi-ooxml‘ to your project, and version >= 4.1.2

原因 由于在依赖中引用了多个版本的 hutool,导致在最终打包时使用的版本不是由在开发时所引用的版本 cn.hutool.core.exceptions.DependencyException: You need to add dependency of poi-ooxml to your project, and version > 4.1.2at cn.hutool.poi.excel.ExcelUtil.get…

MyBatis-Plus 日常操作

本文主要介绍 mybatis-plus 日常操作。 一、快速开始 本文基于 springboot、maven、jdk1.8、mysql 环境。 新建如下数据库&#xff1a; 建议大家选择 utf8mb4 这种字符集&#xff0c;做过微信的同学应该会知道&#xff0c;微信用户名称的表情&#xff0c;是需要这种字符集才…

基于python旅游推荐系统 协同过滤算法 爬虫 Echarts可视化 Django框架(源码)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…