Oracle 11g 数据库 实验7 数据库安全管理

Oracle 11g 数据库实验7 数据库安全管理

1、实验目的

(1)掌握Oracle数据库安全控制的实现。

(2)掌握Oracle数据库用户管理。

(3)掌握Oracle数据库权限管理。

(4)掌握Oracle数据库角色管理。

(5)了解Oracle数据库概要文件的管理。

(6)了解Oracle数据库审计。

2、实验环境

Oracle 11G

3、实验要求

(1)为BOOKSALES数据库创建用户

(2)为BOOKSALES数据库用户进行权限授予与回收。

(3)为BOOKSALES数据库创建角色,利用角色为用户授权。

(4)为BOOKSALES数据库创建概要文件,并指定给用户,

(5)对BOOKSALES数据库中的用户操作进行审计。

4、实验内容、过程与结果

(1)创建一个名为Tom的用户,采用口令认证方式,口令为Tom,默认表空间为USERS表空间,默认临时表空间为TEMP,在USERS表空间上配额为10MB,在BOOKTBS1表空间上的配额为50MB。

CREATE USER TOM IDENTIFIED BY TOM DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 10M ON USERS QUOTA 50M ON BOOKTBS1;

在这里插入图片描述

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

CREATE USER JOAN IDENTIFIED BY JOAN DEFAULT TABLESPACE BOOKTBS2 TEMPORARY TABLESPACE TEMP QUOTA 10M ON USERS QUOTA 20M ON BOOKTBS2 ACCOUNT LOCK;

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

GRANT CREATE SESSION TO PUBLIC;

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

CONN TOM/TOM@BOOKSALES
CONN JOAN.JOAN@BOOKSALE

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

CONN SYS AS SYSDBA
ALTER USER JOAN ACCOUNT UNLOCK;
CONN JOAN/JOAN@BOOKSALES;

(6) Tom 用户和Joan用户登录成功后,分别查询books表、customers 表中的数据.

SELECT * FROM BS.BOOKS;
SELECT * FROM BS.CUSTOMERS;

注意:这里是查不到bs用户的表的,继续往下面做即可!!

(7)为Tom用户授予CREATE TABLE、CREATE VIEW系统权限,并可以进行权限传递:将图书销售系统中的各个表的SELECT、UPDATE、DELETE、INSERT 对象权限授予Tom用户,也具有传递性。

CONN SYS AS SYSDBA
GRANT CREATE TABLE,CREATE VIEW TO TOM WITH ADMIN OPTION;
CONN BS //这里可以不切换
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.CUSTOMERS TO TOM WITH GRANT OPTION;
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.PUBLISHERS TO TOM WITH GRANT OPTION;
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.BOOKS TO TOM WITH GRANT OPTION;
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.ORDERS TO TOM WITH GRANT OPTION;
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.ORDERITEM TO TOM WITH GRANT OPTION;
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.PROMOTION TO TOM WITH GRANT OPTION;

(8) Tom用户将图书销售系统中的customers表、publishers 表、books 表的查询权限以及CREATE VIEW、CREATE TABLE的系统权限授予Joan用户。

CONN TOM/TOM
GRANT SELECT ON BS.CUSTOMERS TO JOAN;
GRANT SELECT ON BS.PUBLISHERS TO JOAN;
GRANT SELECT ON BS.BOOKS TO JOAN;
GRANT CREATE TABLE,CREATE VIEW TO JOAN;

(9)利用Joan用户登录BOOKSALES数据库,查询customers表、publishers 表、books表中的数据。创建一个包含出版社及其出版的图书信息的视图publisher book.

CONN JOAN/JOAN
SELECT * FROM BS.CUSTOMERS;
SELECT * FROM BS.PUBLISHERS;
CREATE VIEW PUBLISHERS_VIEW AS SELECT NAME,CONTACT,PHONE FROM BS.PUBLISHERS;

(10) Tom用户回收其授予Joan用户的CREATE VIEW的系统权限。

REVOKE CREATE VIEW FROM JOAN;

(11) Tom用户回收其授予Joan用户的在customers表上的SELECT权限。

REVOKE SELECT ON BS.CUSTOMERS FROM JOAN;

(12)利用system用户登录BOOKSALES数据库,回收Tom用户所有具有的CREATETABLE系统权限以及在customers表、publishers 表、books 表上SELECT权限。

CONN SYSTEM/root
REVOKE CREATE TABLE FROM TOM;
REVOKE SELECT ON BS.CUSTOMERS FROM TOM;
REVOKE SELECT ON BS.PUBLISHERS FROM TOM;
REVOKE SELECT ON BS.BOOKS FROM TOM;

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

SELECT * FROM USER_SYS_PRIVS;

(14)创建一个角色bs­_role, 将BOOKSALES数据库中books表的所有对象权限以及对customers表、publishers 表、orders表的SELECT权限授予该角色。

CREATE ROLE BS_ROLE NOT IDENTIFIED;
GRANT SELECT,UPDATE,DELETE,INSERT ON BS.BOOKS TO BS_ROLE;
GRANT SELECT ON BS.CUSTOMERS TO BS_ROLE;
GRANT SELECT ON BS.PUBLISHERS TO BS_ROLE;
GRANT SELECT ON BS.ORDERS TO BS_ROLE;

(15)将bs_role角色授予Joan用户,将CREATE SESSION、 RESOURCE、bs_ role角色授予Tom用户。

GRANT BS_ROLE TO JOAN;
GRANT CREATE SESSION,RESOURCE,BS_ROLE TO TOM;

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

CREATE PROFILE BS_PROFILE1 LIMIT CONNECT_TIME 30 IDLE_TIME 10 PASSWORD_LIFE_TIME 20 FAILED_LOGIN_ATTEMPTS 2 PASSWORD_LOCK_TIME 10;

(17) 创建一个概要文件bs_profile2, 要求每个用户的最多会话数为3个,最长的连接时间为60分钟,最大空闲时间为20分钟,每个会话占用CPU的最大时间为10秒:用户最多尝试登录次数为3次,登录失败后账户锁定日期为7天。

CREATE PROFILE BS_PROFILE2 LIMIT SESSIONS_PER_USER 3 CONNECT_TIME 60 IDLE_TIME 20 CPU_PER_CALL 10 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 7;

(18)将概要文件bs_profle1 指定给Tom用户,将概要文件bs_profile2 指定给Joan用户。

ALTER USER TOM PROFILE BS_PROFILE1;
ALTER USER JOAN PROFILE BS_PROFILE2;

后记:最后这里附上查各种权限的语句,

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='TOM';
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='JOAN';
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE='TOM';
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE='JOAN';
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='TOM';
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='JOAN';
SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='BS_ROLE';
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE='BS_ROLE';

注意:如果在19题内的登录会话数不起作用,需输入一下语句解锁功能

ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;

本次实验内容到此为止,内容仅供参考。

原创文章 4 获赞 0 访问量 537

猜你喜欢

转载自blog.csdn.net/weixin_43158997/article/details/106106308