中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle審計功能的用法介紹

發布時間:2021-09-17 12:00:16 來源:億速云 閱讀:155 作者:chen 欄目:關系型數據庫

本篇內容主要講解“oracle審計功能的用法介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“oracle審計功能的用法介紹”吧!


1,開啟審計:

show parameter audit

alter system set audit_trail = DB_EXTENDED;  --詳細審計

注意,如果audit_trail=db,不記錄SQL_BIND和SQL_TEXT

   DB:將審計結果放在數據庫表中,aud$,通常只記錄連接的信息.
   DB_EXTENDED:將審計結果放在數據庫表中,記錄具體執行語句
   OS:將審計結果記錄在操作系統文件中,文件位置由audit_file_dest參數指定,(windows系統中將直接在事件查看器的系統日志中記錄)
   XML:將審計結果記錄在audit_file_dest指定位置下的XML文件中。


2,重啟數據庫實例

startup force



 

3,指定審計內容

1. 對表的審計:可以單獨對表的create,alter進行審計,如果要對drop操作進行審計需要對表加audit table(該命令包含有create table,drop table,truncate table).

2. 對視圖的審計:可以單獨對視圖的create進行審計,如果要對drop操作進行審計需要對視圖加audit view(該命令包含有create view,drop view).

3. 對程序包的審計:可以對包(函數,存儲過程等)的create進行審計,如果需要對drop操作進行審計需要加audit procedure(該命令對CREATE FUNCTION, CREATE LIBRARY , CREATE PACKAGE, CREATE PACKAGE BODY, CREATE PROCEDURE, DROP FUNCTION, DROP LIBRARY, DROP PACKAGE, DROP PROCEDURE進行審計)

4. 對用戶的審計:可以通過audit user(該命令包含 create user,alter user,drop user)進行審計,

例如要審計scott賬戶的所有操作

audit all by scott;

4,查看都有哪些內容被審計

select * from dba_priv_audit_opts   --where owner_name='SCOTT';

select * from dba_stmt_audit_opts

select * from dba_obj_audit_opts


 

1. 對表的審計:可以單獨對表的create,alter進行審計,如果要對drop操作進行審計需要對表加audit table(該命令包含有create table,drop table,truncate table).

2. 對視圖的審計:可以單獨對視圖的create進行審計,如果要對drop操作進行審計需要對視圖加audit view(該命令包含有create view,drop view).

3. 對程序包的審計:可以對包(函數,存儲過程等)的create進行審計,如果需要對drop操作進行審計需要加audit procedure(該命令對CREATE FUNCTION, CREATE LIBRARY , CREATE PACKAGE, CREATE PACKAGE BODY, CREATE PROCEDURE, DROP FUNCTION, DROP LIBRARY, DROP PACKAGE, DROP PROCEDURE進行審計)

4. 對用戶的審計:可以通過audit user(該命令包含 create user,alter user,drop user)進行審計,

DBA_AUDIT_TRAIL       列出所有審計跟蹤條目

USER_AUDIT_TRAIL      USER視圖顯示與當前用戶有關的審計跟蹤條目



 

5,查看審計信息

select * from dba_audit_trail where  owner = 'SCOTT' order by timestamp;


視圖說明:
1. SYS.AUD$
審計功能的底層視圖,如果需要對數據進行刪除,只需要對aud$視圖進行刪除既可,其他視圖里的數據都是由aud$所得.
2. DBA_AUDIT_EXISTS
列出audit not exists和audit exists產生的審計跟蹤,我們默認的都是audit exists.
3. DBA_AUDIT_TRAIL
可以在里面查處所有審計所跟蹤的信息.
4. DBA_AUDIT_OBJECT
可以查詢所有對象跟蹤信息.(例如,對grant,revoke等不記錄),信息完全包含于dba_audit_trail
5. DBA_AUDIT_SESSION
所得到的數據都是有關logon或者logoff的信息.
6. DBA_AUDIT_STATEMENT
列出grant ,revoke ,audit ,noaudit ,alter system語句的審計跟蹤信息.
7. DBA_PRIV_AUDIT_OPTS
通過系統和由用戶審計的當前系統特權
8. DBA_OBJ_AUDIT_OPTS
可以查詢到所有用戶所有對象的設計選項
9. ALL_DEF_AUDIT_OPTS
10. AUDIT_ACTIONS
可以查詢出在aud$等視圖中actions列的含義
11. SYSTEM_PRIVILEGE_MAP
可以查詢出aud$等視圖中priv$used列的含義(注意前面加'-')


 

6 ,取消審計

全部取消是

noaudit all;

如果取消單獨的可以根據上面4條查看有上面權限直接noaudit 即可。

如:noaudit create session by user scott;


 

取消對SC表的一切審計可使用如下語句:


 

NOAUDIT ALL ON SC;

noaudit取消審計的操作對已經連接著的session無用,但新開的session將不再審計。

-- 取消所有statement審計
NOAUDIT ALL;
-- 取消所有權限審計
NOAUDIT ALL PRIVILEGES;
-- 取消所有對象審計
NOAUDIT ALL ON DEFAULT;


 

7,關閉審計



SQL> alter system set audit_trail=none scope=spfile;


.audit_sys_operations:是否對sysdba用戶做審計 ,關于sysdba用戶審計的結果,linux存放在audit_file_dest參數指定位置的aud文件中,windows存放在事件查看器的系統日志中 


問題1:

確認審計相關的表是否已經安裝


 

   SQLPLUS> connect / AS SYSDBA  


 

   SQLPLUS> select * from sys.aud$;  -- 沒有記錄返回   


 

   SQLPLUS> select * from dba_audit_trail; -- 沒有記錄返回  


 

  如果做上述查詢的時候發現表不存在,說明審計相關的表還沒有安裝,需要安裝。


 

   SQLPLUS> connect / as sysdba  


 

   SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql  


 



 

問題2:


 

將審計相關的表移動到其他表空間:


 

由于AUD$表等審計相關的表存放在SYSTEM表空間,因此為了不影響系統的性能,保護SYSTEM表空間,最好把AUD$移動到其他的表空間上。可以使用下面的語句來進行移動:


 

sql>connect / as sysdba;


 

sql>alter table aud$ move tablespace <new tablespace>;


 

sql>alter index I_aud1 rebuild online tablespace <new tablespace>;


 

SQL> alter table audit$ move tablespace <new tablespace>;


 

SQL> alter index i_audit rebuild online tablespace <new tablespace>;


 

SQL> alter table audit_actions move tablespace <new tablespace>;


 

SQL> alter index i_audit_actions rebuild online tablespace <new tablespace>;


 



 

問題3:

audit的審計信息保留時間

(默認一直保留)


 

手動清理:

How to truncate or delete rows from audit trail table sys.aud$

1)Only appropriate privileged user can do delete operation on SYS.AUD$ table. The user must have either of the following privileges.

-SYS user.

-DELETE ANY TABLE system privilege. (If O7_DICTIONARY_ACCESSIBILITY=TRUE)

-A user to whom SYS has granted the object privilege DELETE on SYS.AUD$ table.


 

2)Before deleting any rows you may want to archive the table. You can achive this by creating a table from SYS.AUD$ and export that. Don't export SYS.AUD$ directly.

SQL>CREATE TABLE AUDIT_RECORD TABLESPACE users as select * from SYS.AUD$;

Now export the table as,

SQL> host exp tables=AUDIT_RECORD file=audit_record.dmp


 

3)To delete all records from audit trail table SYS.AUD$ issue,

SQL>DELETE FROM SYS.AUD$;


 

To delete all records of particular audited table from the audit trail issue,

SQL>DELETE FROM sys.aud$ WHERE obj$name='&table_nmae';


 

But deleting in this way will not reduce size on the system tablespace or aud$ table. In order to reduce size follow section 4.


 

4)Truncate audit table to reduce size.

SQL>CONN / as sysdba

SQL>TRUNCATE TABLE SYS.AUD$


自動清理:

1.創建清理aud$表procedure:


 

create or replace procedure clear_aud

as

begin

delete aud$ where ntimestamp# <trunc(sysdate,'HH')- 1/24;

commit;

exception when others then 

rollback;

end;


 

2.創建清理AUD$表JOB:


 

Variable job number ;

begin

dbms_job.submit(:job, 'clear_aud;' ,trunc( sysdate + 1 / 24 , 'hh34' ), 'trunc(sysdate+1/24,''hh34'')' );

commit ;

end ;

/


問題4:

查找AUD$表大小

select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024 MB from dba_segments where SEGMENT_TYPE='TABLE' and SEGMENT_NAME='AUD$';

到此,相信大家對“oracle審計功能的用法介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延安市| 休宁县| 兴山县| 光山县| 桑植县| 吉安县| 锡林郭勒盟| 上虞市| 绩溪县| 兰坪| 鹤山市| 景德镇市| 右玉县| 桂林市| 丰城市| 南川市| 榆社县| 遂昌县| 新丰县| 合阳县| 牙克石市| 汝城县| 金堂县| 玛曲县| 海宁市| 黑水县| 左贡县| 铜川市| 平泉县| 柏乡县| 台湾省| 托克逊县| 定州市| 海晏县| 兴仁县| 福安市| 将乐县| 加查县| 黄浦区| 香格里拉县| 陆丰市|