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;

本次實驗內容到此爲止,內容僅供參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章