Oracle11g安全審計–重要帳號的DDL語句操作記錄
Oracle11g安全審計–重要帳號的DDL語句操作記錄
Oracle11g安全審計–重要帳號的DDL語句操作記錄
如果要審計資料庫中的DDL操作,那麼可以通過DDL觸發器來實現,把資料庫中的所有DDL操作都記錄下來。本例子適用於oracle 9i或更高的版本。操作方法如下:
第一步,建立表空間和相關的日誌表:
- create tablespace STAT_LOG
- LOGGING
- datafile
- `/apps/oracle/oradata/statlog.dbf` size 2048m AUTOEXTEND ON NEXT 128M MAXSIZE 8G
- EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
- create table stat$log_ddl
- (
- ddl_date date,
- user_name varchar2(30),
- ip_addr VARCHAR2(30),
- obj_name VARCHAR2(50),
- ddl_type VARCHAR2(30),
- object_type VARCHAR2(18),
- owner VARCHAR2(30),
- SQL_TEXT VARCHAR2(1000)
- ) TABLESPACE STAT_LOG;
第二步,建立資料庫級的DDL觸發器,把所有的DDL操作都記錄下來
- CREATE OR REPLACE TRIGGER DDL_audit AFTER CREATE OR ALTER OR DROP OR TRUNCATE OR
- GRANT OR REVOKE OR RENAME
- on DATABASE
- declare
- ipaddr varchar2(20);
- STEXT VARCHAR2(1000);
- BEGIN
- begin
- select sys_context(`USERENV`, `IP_ADDRESS`) into ipaddr FROM dual;
- exception when others then
- ipaddr:=`-`;
- end;
- begin
- select SQL_TEXT INTO STEXT FROM v$open_cursor WHERE UPPER(sql_text) LIKE `ALTER%` OR UPPER(sql_text) LIKE `RENAME%` OR UPPER(sql_text) LIKE `DROP%` OR UPPER(sql_text) LIKE `TRUNCATE%` ;
- exception when others then
- STEXT:=`-`;
- end;
- insert into sys.stat$log_DDL values
- (sysdate,
- user,
- nvl (ipaddr,`-`),
- NVL(ora_dict_obj_name,`-`),
- NVL(ORA_SYSEVENT,`-`),
- NVL(ora_dict_obj_type,`-`),
- NVL(ora_dict_obj_owner,`-`),
- STEXT
- );
- exception when others then
- null;
- END;
- /
DDL操作記錄審計效果如下:
- select ddl_date,user_name,ip_addr,obj_name,ddl_type,sql_text from stat$log_ddl;
- SQL> /
- DDL_DATE USER_NAME IP_ADDR OBJ_NAME DDL_TYPE SQL_TEXT
- ——————- ———- ——————– ———- ———- ————————————————–
- 2012-10-25 23:31:40 DBA_USER – T1 CREATE –
- 2012-10-25 23:32:32 DBA_USER – N_TEST DROP –
- 2012-10-25 23:36:04 DBA_USER 172.18.130.114 T1 DROP –
- 2012-10-25 23:42:49 DBA_USER 172.18.130.114 TEST ALTER alter table test drop(name)
- 2012-10-25 23:43:08 DBA_USER 172.18.130.114 TEST ALTER alter table test add(name varchar2(20))
- 2012-10-25 23:44:10 DBA_USER 172.18.130.114 TEST ALTER alter table test rename to test01
- 2012-10-25 23:44:44 DBA_USER 172.18.130.114 TEST01 RENAME –
- 2012-10-25 23:51:31 DBA_USER 172.18.130.114 TEST ALTER alter table test add(addr varchar2(10))
- 2012-10-25 23:52:12 DBA_USER 172.18.130.114 TEST ALTER alter table test rename column addr to ipaddr
- 2012-10-26 00:22:10 DBA_USER 172.18.130.114 BYTE_TEST TRUNCATE –
- 10 rows selected.
本文轉自vcdog 51CTO部落格,原文連結:http://blog.51cto.com/255361/1037143,如需轉載請自行聯絡原作者
相關文章
- Oracle使用系統級觸發器審計重要帳號的DDL語句Oracle觸發器
- 資料庫DDL操作審計資料庫
- 記錄資料庫所有ddl操作資料庫
- linux下使用者操作記錄審計環境的部署記錄Linux
- 簡單使用oracle的審計語句Oracle
- 蘋果企業版帳號申請記錄蘋果
- 【實驗】Oracle審計語句的使用演示Oracle
- Oracle 獲取ddl語句Oracle
- PL/SQL與DDL語句SQL
- 記錄一次 Online DDL 操作
- 獲取物件DDL語句的方法物件
- oracle11g審計Oracle
- linux的部分檔案目錄操作語句Linux
- Oracle12c 新特性 - log記錄DDL操作Oracle
- 資料庫維護常用操作3--DDL語句檢視資料庫
- oracle檢視建立物件的DDL語句Oracle物件
- MySQL入門---(一)SQL的DDL語句MySql
- 審記所有資料庫帳戶登入,記錄成功或失敗事件.資料庫事件
- Audit裡審計SQL語句與審計系統許可權的區別SQL
- ORACLE很重要的sql語句OracleSQL
- 利用dbms_metadata.get_ddl檢視DDL語句
- 用dbms_metadata.get_ddl獲取ddl語句
- MySQL的DDL和DML操作語法MySql
- oracle11g ddl trace event事件小記Oracle事件
- 日誌挖掘-對於DDL語句的挖掘
- Oracle 儲存過程中的DDL語句Oracle儲存過程
- MySQL 記錄所有執行了的 sql 語句MySql
- mysql快速新增百萬條記錄的語句MySql
- 用SQL語句去掉重複的記錄SQL
- 記錄ORACLE語句的執行時間Oracle
- 華為帳號小課堂 | 容易被忽略的重要設定
- 控制DDL許可權及紀錄DDL操作的Trigger
- 安全:snoopy: 只能記錄root的操作命令OOP
- Oracle中獲取TABLE的DDL語句的方法Oracle
- Oracle利用dbms_metadata.get_ddl檢視DDL語句Oracle
- 關於oracle11g的審計功能Oracle
- 資料庫操作語言DDL資料庫
- 執行oracle DDL語句要注意的問題Oracle