Oracle权限安全管理

news/2024/10/22 8:16:29/

实验内容

本次实验先使用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_tab_privs where grantee='____';
SQL> select * from dba_sys_privs where grantee='____';
SQL> select * from dba_tab_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.ppmy.cn/news/1541017.html

相关文章

24.10.20(换根哈希)

星期一: 阴间场 cf渡劫成功,拿下三题,终于上蓝🥳🥳🥳 贴 cf round978 div2 C cf传送门 答案取到n1但初始化没到n1,wa了一发,很烦😿…

Docker 安装sql server 登陆失败

错误: Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]. Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : Client unable to establish co…

网络相关(HTTP/TCP/UDP/IP)

网络相关 常见的状态码 100 临时响应 100 继续,请求者应当继续提出请求101 切换协议200 成功响应 200: 服务器成功处理请求201 以创建,请求成功并且服务器创建了新的资源202 已接受:服务器已接受请求,但尚未处理203 非授权信息:服务器已成功处理请求,但返回的信息可能来…

2024.10月18日- Vue2组件开发(3)

Vue组件开发 一、 ref属性 如果在vue里,想要获取DOM对象,并且不想使用JS的原生语法,那么就可以使用ref属性。ref属性的用法: 1)在HTML元素的开始标记中,或者在Vue子组件中的开始标记中定义,相…

大数据面试题整理——Yarn

系列文章目录 第一章 HDFS面试题 第二章 MapReduce面试题 文章目录 系列文章目录什么是 Yarn?一、Yarn 的主要组件及其功能是什么?二、Yarn 中的容器(Container)是什么?三、简述 Yarn 的工作流程。四、Yarn 如何进行资…

Python网络请求库requests的10个基本用法

大家好!今天我们要聊聊Python中非常实用的一个库——requests。这个库让发送HTTP请求变得超级简单。无论你是想抓取网页数据还是测试API接口,requests都能派上大用场。下面我们就一起来看看如何使用requests完成一些常见的任务。 引言 随着互联网技术的…

高中数学网盘资料(每题有解析和知识点)

一、究极超能学习资源高中版 一数作为播放量过亿的哔站up实力非同一般 链接:https://pan.baidu.com/s/1xrcAlq6wj_LMYHcbxAKAWg 提取码:7MBW 复制这段内容打开「百度网盘APP 即可获取」 二、必刷题高考合订本(刷题必备) 链接&am…

lazyLoad

//1.通过React的lazy函数配合import()函数动态加载路由组件 > 路由组件代码会被分开打包 const Login lazy(()>import(/pages/Login)) //2.通过<Suspense>指定在加载得到路由打包文件前显示一个自定义loading界面 <Suspense fallback{<h1&…