欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Oracle权限安全管理

Oracle权限安全管理

2024/10/23 9:11:04 来源:https://blog.csdn.net/m0_74344909/article/details/143029067  浏览:    关键词: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_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';

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com