Oracle OCP(51):簡單審計

Ryan_Bai發表於2019-05-16

一、開啟審計

  • 設定AUDIT_TRAIL引數

    一般常見的審計方式是OS,如果設定 AUDIT_TRAIL = OS,還需要修改引數AUDIT_FILE_DEST。

  • 關閉並重啟資料庫

二、設定所需要的審計資訊

所有型別的審計都使用audit命令來開啟審計,使用noaudit命令來關閉審計。

語法:

AUDIT sql_statement_clause|schema_object_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;
  • sql_statement_clause|schema_object_clause包含很多條不同的資訊,例如希望審計的SQL語句型別以及審計什麼人、什麼操作。

  • 希望在每次動作發生時都對其進行審計(by access)或者只審計一次(by session)。預設是by session。

  • 有時希望審計成功的動作:沒有生成錯誤訊息的語句。對於這些語句,新增whenever successful。而有時只關心使用審計語句的命令是否失敗,失敗原因是許可權違犯、用完表空間中的空間還是語法錯誤。對於這些情況,使用 whenever not successful。

對於大多數類別的審計方法,如果確實希望審計所有型別的表訪問或某個使用者的任何許可權,則可以指定all而不是單個的語句型別或物件。

  • 包括在ALL類別中的可審計語句

    • ALTER SYSTEM:所有ALTER SYSTEM選項,例如,動態改變例項引數,切換到下一個日誌檔案組,以及終止使用者會

    • CLUSTER:CREATE、ALTER、DROP或TRUNCATE叢集

    • CONTEXT:CREATE CONTEXT或DROP CONTEXT

    • DATABASE LINK:CREATE或DROP資料庫連結

    • DIMENSION:CREATE、ALTER或DROP維數

    • DIRECTORY:CREATE或DROP目錄

    • INDEX:CREATE、ALTER或DROP索引

    • MATERIALIZED VIEW:CREATE、ALTER或DROP物化檢視

    • NOT EXISTS:由於不存在的引用物件而造成的SQL語句的失敗

    • PROCEDURE:CREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE

    • PROFILE:CREATE、ALTER或DROP配置檔案

    • PUBLIC DATABASE LINK:CREATE或DROP公有資料庫連結

    • PUBLIC SYNONYM:CREATE或DROP公有同義詞

    • ROLE:CREATE、ALTER、DROP或SET角色

    • ROLLBACK SEGMENT:CREATE、ALTER或DROP回滾段

    • SEQUENCE:CREATE或DROP序列

    • SESSION:登入和退出

    • SYNONYM:CREATE或DROP同義詞

    • SYSTEM AUDIT:系統許可權的AUDIT或NOAUDIT

    • SYSTEM GRANT:GRANT或REVOKE系統許可權和角色

    • TABLE:CREATE、DROP或TRUNCATE表

    • TABLESPACE:CREATE、ALTER或DROP表空間

    • TRIGGER:CREATE、ALTER(啟用/禁用)、DROP觸發器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE

    • TYPE:CREATE、ALTER和DROP型別以及型別主體

    • USER:CREATE、ALTER或DROP使用者

    • VIEW:CREATE或DROP檢視

  • 非ALL類別,顯式指定的語句型別

    • ALTER SEQUENCE:任何ALTER SEQUENCE命令

    • ALTER TABLE:任何ALTER TABLE命令

    • COMMENT TABLE:新增註釋到表、檢視、物化檢視或它們中的任何列

    • DELETE TABLE:刪除表或檢視中的行

    • EXECUTE PROCEDURE:執行程式包中的過程、函式或任何變數或遊標

    • GRANT DIRECTORY:GRANT或REVOKE DIRECTORY物件上的許可權

    • GRANT PROCEDURE:GRANT或REVOKE過程、函式或程式包上的許可權

    • GRANT SEQUENCE:GRANT或REVOKE序列上的許可權

    • GRANT TABLE:GRANT或REVOKE表、檢視或物化檢視上的許可權

    • GRANT TYPE:GRANT或REVOKE TYPE上的許可權

    • INSERT TABLE:INSERT INTO表或檢視

    • LOCK TABLE:表或檢視上的LOCK TABLE命令

    • SELECT SEQUENCE:引用序列的CURRVAL或NEXTVAL的任何命令

    • SELECT TABLE:SELECT FROM表、檢視或物化檢視

    • UPDATE TABLE:在表或檢視上執行UPDATE

  • 許可權類別

    • ALTER:改變表、序列或物化檢視

    • AUDIT:審計任何物件上的命令

    • COMMENT:新增註釋到表、檢視或物化檢視

    • DELETE:從表、檢視或物化檢視中刪除行

    • EXECUTE:執行過程、函式或程式包

    • FLASHBACK:執行表或檢視上的閃回操作

    • GRANT:授予任何型別物件上的許可權

    • INDEX:建立表或物化檢視上的索引

    • INSERT:將行插入表、檢視或物化檢視中

    • LOCK:鎖定表、檢視或物化檢視

    • READ:對DIRECTORY物件的內容執行讀操作

    • RENAME:重新命名錶、檢視或過程

    • SELECT:從表、檢視、序列或物化檢視中選擇行

    • UPDATE:更新表、檢視或物化檢視

三、例句

如果希望審計HR.JOBS表上的所有insert和update命令,而不管誰正在進行更新,則每次該動作發生時,都可以使用如下所示的audit命令:

audit insert, update on hr.jobs by access whenever successful;

使用者 HR 向HR.JOBS表新增兩個新行:

insert into hr.jobs (job_id, job_title, min_salary, max_salary)
values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
insert into hr.jobs (job_id, job_title, min_salary, max_salary)
values ('OE_VLD','Order Entry CC Validation', 5500, 20000);

檢視DBA_AUDIT_TRAIL檢視,可以看到KSHELTON會話中的兩個insert命令

SELECT USERNAME,
      TO_CHAR(TIMESTAMP, 'MM/DD/YY HH24:MI') TIMESTAMP,
      OBJ_NAME,
      ACTION_NAME,
      SQL_TEXT
  FROM DBA_AUDIT_TRAIL;
USERNAME  TIMESTAMP      OWNER OBJ_NAME ACTION_NAME   SQL_TEXT
--------- -------------- ----- -------- ------------- ---------------------------------------------------------------
KSHELTON  08/12/07 22:54 HR    JOBS      INSERT       insert into hr.jobs (job_id, job_title, min_salary, max_salary)
                                                      values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
KSHELTON  08/12/07 22:53 HR    JOBS      INSERT       insert into hr.jobs (job_id, job_title, min_salary, max_salary)
                                                      values ('OE_VLD','Order Entry CC Validation', 5500, 20000);


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2644545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章