Oracle权限安全管理

实验内容

本次实验先使用system用户连接

温馨提示:题目要求切换账户登录的时候自己记得切换,本文章只提供相应的SQL语句

在表空间BOOKTBS1(实验4第1题已创建)创建一张表BOOKS,其字段如下::

 SQL> create table BOOKS
  2  (ISBN varchar(50) primary key,
  3  title varchar(50),
  4  author varchar(50),
  5  cost number(12)) tablespace BOOKTBS1;

表已创建。

在其中插入一条数据('20240101','Oracle数据库管理与开发','李真',48)。

SQL> insert into BOOKS(ISBN,title,author, cost)
  2  values ('20240101','Oracle数据库管理与开发','李真',48);

已创建 1 行。

创建一张表CUSTOMERS,其字段如下:

SQL> CREATE TABLE CUSTOMERS (
  2    customer_id NUMBER(4) PRIMARY KEY,
  3    name VARCHAR2(20) NOT NULL,
  4    phone VARCHAR2(50) NOT NULL
  5  ) TABLESPACE BOOKTBS1;

表已创建。


 1、用户创建与修改

(1)以自己名字首字母创建一个用户(后文称为本人用户),采用口令认证方式,口令自己定义,默认表空间为 USERS表空间,临时表空间为 TEMP,在 USERS 表空间上配额为 10M,在 BOOKTBS1 表空间上的配额为 50M。(下划线填自己名字首字母,下文也是)

SQL> create user _____
  2  identified by 000000
  3  default tablespace USERS
  4  temporary tablespace TEMP
  5  quota 10M on USERS
  6  quota 50M on BOOKTBS1;

用户已创建。

(2)创建一个名为Tom的用户,采用口令认证方式,口令为Tom,默认表空间为BOOKTBS1表空间,默认临时表空间为TEMP,在USERS表空间上配额为10MB,在BOOKTBS1表空间上的配额为20MB。该用户的初始状态为锁定状态。

SQL> create user Tom
  2  identified by Tom
  3  default tablespace BOOKTBS1
  4  temporary tablespace TEMP
  5  account lock
  6  quota 10M on USERS
  7  quota 20M on BOOKTBS1;

用户已创建。

(3)为方便数据库中用户的登录,为 ORCL 数据库中所有用户授予 CREATE SESSION系统权限。

SQL> grant create session to public;

授权成功。

(4)分别使用 本人用户和 Tom 用户登录 ORCL 数据库,测试是否成功。

使用 SQLPlus 链接数据库,以本人用户和 Tom 用户的身份登录 ORCL 数据库,测试是否成功。

(5)为 Tom 用户帐户解锁,并重新进行登录。

SQL> alter user Tom account UNLOCK;


 2、授权与回收操作

(6)切回SYSTEM用户,为本人用户授予 CREATE TABLE、 CREATE VIEW 系统权限,并可以进行权限传递转授;授予books表和customer表上的所有对象权限给本人用户。

SQL> grant create table,create view to ____ with admin option;

授权成功。

SQL> grant all privileges on BOOKS to ____with grant option;

授权成功。

SQL> grant all privileges on CUSTOMERS to ____ with grant option;

授权成功。

(7)切换到本人用户,将 books、customer 表的查询、插入权限以及CREATE VIEW、 CREATE TABLE 的系统权限授予 Tom 用户。

SQL> grant select,insert on system.BOOKS to Tom;

授权成功。

SQL> grant create table,create view to Tom;

授权成功。

(8)使用 Tom 用户连接数据库, 查询 books表中的数据,新增一条书籍数据(自拟)。

SQL> insert into system.books
  2  (ISBN,TITLE,AUTHOR,COST)
  3  values (20240202,'javac程序设计','张三',52);

已创建 1 行。

(9)使用本人用户回收其授予 Tom 用户的 CREATE VIEW 的系统权限,以及其授予 Tom 用户的在 books 表上的 INSERT 权限。

SQL> revoke create view from Tom;

撤销成功。

SQL> revoke insert on system.BOOKS from Tom;

撤销成功。

(10)使用 system用户登录数据库, 回收本人用户所有具有的 CREATE TABLE系统权限以及在 books 表上 SELECT 权限,思考这时Tom用户的这两项权限是否受影响。

此时,Tom用户的CREATE VIEW权限和在books表上的INSERT权限应该受到影响。

SQL> revoke create table from ____;

撤销成功。

SQL> revoke select on system.BOOKS from ____;

撤销成功。

(11)分别查询 本人用户、Tom 用户所具有的对象权限和系统权限详细信息。

SQL> select * from dba_dba_privs where grantee='____';
SQL> select * from dba_sys_privs where grantee='____';
SQL> select * from dba_dba_privs where grantee='TOM';
SQL> select * from dba_sys_privs where grantee='TOM';


3、角色的创建与授予

(12)使用system用户登录,创建一个角色 seller,不使用口令验证,将 books 表的所有对象权限以及对customers 表的 SELECT 权限授予该角色。

SQL> create role seller;

角色已创建。

SQL> grant all privileges on system.BOOKS to seller;

授权成功。

SQL> grant select on system.CUSTOMERS to seller;

授权成功。

(13)将seller角色授予 Tom 用户,在dba_role_privs中查看当前Tom被授予的角色,在dba_tab_privs中查看seller角色所具有的对象属性。思考此时Tom拥有哪些权限。

        此时,Tom拥有的权限将包括:对books表的所有权限(SELECT, INSERT, UPDATE, DELETE等);对customers表的SELECT权限。

SQL> grant seller to Tom;

授权成功。

SQL> select * from dba_role_privs where grantee='TOM';

(14)使用Tom用户,通过SET ROLE 角色名语句启用seller角色,并查询books表中的数据。

SQL> set role seller;

角色集

SQL> select * from system.BOOKS;


4、概要文件使用

(15) 创建一个 bs_profile1 的概要文件, 限定用户的最长会话时间为 30 分钟, 如果连续10 分钟空闲,则结束会话。同时, 限定其口令有效期为 20 天, 连续登录 2 次失败后将锁定账户,10 天后自动解锁。

SQL> create profile bs_profile1 limit
  2  CONNECT_TIME 30
  3  IDLE_TIME 10
  4  PASSWORD_LIFE_TIME 20
  5  FAILED_LOGIN_ATTEMPTS 2
  6  PASSWORD_LOCK_TIME 10;

配置文件已创建

(16) 将概要文件bs_profile1指定给Tom用户。

SQL> alter user Tom profile bs_profile1;

用户已更改。

(17)利用Tom用户登录ORCL数据库,连续两次输入错误口令,查看执行结果,并使用system查看Tom用户的锁定状态。

SQL> select username,account_status from dba_users where username = 'TOM';

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

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

相关文章

一次性语音芯片:重塑语音识别技术,引领智能化生活新时代

随着一次性语音芯片的突破性进展,语音识别技术正融入我们生活的方方面面,引领着智能化生活迈向一个全新的时代。这些芯片不仅体积小巧、成本低廉,更在性能上实现了质的飞跃,能够更精确地捕捉并理解人类语音。本文将解读关于一次性…

嵌入式开发选硬件还是软件?

做了单片机软件开发很多年,和很多硬件工程师打过配合,其中大部分硬件工程师,越往后,学软件的意愿越强烈。 所以我建议是,先做软件,是比较好的发育路线。 软件开发的优势主要体现在几个方面。 第一是薪资待遇…

python爬虫实战案例——从移动端接口抓取微博评论,采用cookie登陆,数据存入excel表格,超详细(15)

文章目录 1、任务目标2、网页分析3、代码编写3.1 代码分析3.2 完整代码1、任务目标 1、目标网站:微博文章(https://m.weibo.cn/detail/4813628149072458),这是微博某一篇博文,用于本文测试 2、要求:爬取该博文下,所有一级评论和二级评论,以及每条评论的作者,最后保存至E…

Python魔法函数__iter__的用法

下面是找到的一个比较好的科学解释: Python中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问。 1.__iter__方法的作用是让对象可以用for…

微服务之间是如何独立通讯的?

前言 微服务架构是一种将一个应用程序拆分成多个小型、独立的服务的架构。在微服务架构中,各个服务之间需要进行通信来完成数据交互和业务处理。本文将详细介绍微服务之间如何独立通信的。 微服务之间独立通讯主要依靠定义清晰的API协议、使用轻量级交互机制、以及…

Vscode替换\n为换行符

文件内容是字符串,每行用\n分割,阅读困难,可以在vscode,用替换\n进行换行。

120多套各种类别微信小程序模板源码

微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,为用户提供便捷的服务体验。本资源包含120套微信小程序的源码,对于开发者来说是一份宝贵的参考资料,可以用来学习、研究或者作为开发新项目的起…

【Linux系统编程】环境基础开发工具使用

目录 1、Linux软件包管理器yum 1.1 什么是软件包 1.2 安装软件 1.3 查看软件包 1.4 卸载软件 2、Linux编辑器-vim 2.1 vim的概念 2.2 vim的基本操作 2.3 vim的配置 3、Linux编译器-gcc/g 3.1 gcc编译的过程​编辑​编辑​编辑 3.2 详解链接 动态链接 静态链接 4…

C++【内存管理】(超详细讲解C++内存管理以及new与delete的使用和原理)

文章目录 1.C/C内存分布2.C语言中动态内存管理方式3.C内存管理方式3.1 new/delete操作内置类型3. 2new/delete操作自定义类型 4. operator new与operator delete函数(重点)5. new和delete的实现原理5.1 内置类型5.2 自定义类型5.2.1 自定义类型调用new[]…

JAVA就业笔记6——第二阶段(3)

课程须知 A类知识:工作和面试常用,代码必须要手敲,需要掌握。 B类知识:面试会问道,工作不常用,代码不需要手敲,理解能正确表达即可。 C类知识:工作和面试不常用,代码不…

深度学习相关知识点

epoch/batch/batch_size的关系 Epoch:模型在整个数据集上完成一次训练。一个epoch后,模型已经看过所有的训练数据,执行了正向传播和反向传播。通常训练需要多个epoch,模型才能逐步学习和收敛。Batch:由于在深度学习中…

Python 如何处理大规模数据库表的迁移与数据迁移的高效执行

Python 如何处理大规模数据库表的迁移与数据迁移的高效执行 引言 在现代应用开发中,随着业务需求的增长,数据库表结构和数据往往需要进行迁移和更新。迁移(Migration)是指对数据库表的结构、数据类型、索引、约束等进行修改或更新…

电脑桌面便签怎么添加,好用便签软件怎么样?

在数字化时代,电脑桌面便签是现代工作和学习中不可或缺的工具,它能够帮助用户记录重要信息、设置提醒事项并高效管理任务。那么,电脑桌面便签怎么添加,好用便签软件怎么样呢?接下来让我们一起来探讨下吧。 一&#xf…

Python 基础之条件语句

一、条件语句简介 在Python中,条件语句用于根据不同的条件执行不同的代码块。这使得程序能够根据特定的情况做出决策,并执行相应的操作。 二、if 语句 if语句是最基本的条件语句。它用于检查一个条件,如果条件为真,则执行特定的代…

13.3寸工业三防平板数字化工厂产线数采手持终端

在数字化工厂的建设浪潮中,高效可靠的数据采集终端至关重要。尤其在水处理、食品加工等特殊工业环境下,设备的耐用性和数据安全性面临严峻挑战。传统的平板电脑难以应对复杂的工业现场,而一款性能卓越、坚固耐用的工业三防平板则成为提升生产…

利用sessionStorage收集用户访问信息,然后传递给后端

这里只是简单的收集用户的停留时间、页面加载时间、当前页面URL及来源页面&#xff0c;以做示例 <html><head><meta http-equiv"content-type" content"text/html; charsetUTF-8"/><title>测试sessionStorage存储用户访问信息<…

基于深度学习的设备异常检测与预测性维护

基于深度学习的设备异常检测与预测性维护是一项利用深度学习技术分析设备运行数据&#xff0c;实时检测设备运行过程中的异常情况&#xff0c;并预测未来可能的故障&#xff0c;以便提前进行维护&#xff0c;防止意外停机和生产中断。它在工业领域应用广泛&#xff0c;特别是在…

使用docker搭建lnmp运行WordPress

一&#xff0c;部署目的 使用 Docker 技术在单机上部署 LNMP 服务&#xff08;Linux Nginx MySQL PHP&#xff09;。部署并运行 WordPress 网站平台。掌握 Docker 容器间的互联及数据卷共享。 二&#xff0c;部署环境 操作系统&#xff1a;CentOS 7Docker 版本&#xff1…

路由通信 的 VLAN技术

一、VLAN基础 虚拟局域网&#xff08;Virtual Local Area Network&#xff0c;VLAN&#xff09; 根据管理功能、组织机构或应用类型对交换局域网进行分段而形成的逻辑网络。 交换机最多支持4094个VLAN&#xff0c;其中默认管理VLAN是VLAN1&#xff0c;不能创建&#xff0c;也…

spark:数据的关联与合并、缓存和checkpoint

文章目录 1. 数据的关联与合并1.1 join关联1.1.1 内关联1.1.2 左关联1.1.3 右关联 1.2 Union合并 2. 缓存和checkpoint 1. 数据的关联与合并 1.1 join关联 students表数据&#xff1a; 1.1.1 内关联 内关联只返回两个 DataFrame 中在连接键上匹配的行。 # join 关联 from…