2009年03月13日

oracle 9i AUDIT SOP

Oracle_9i_AUDIT_SOP
測試筆記

使用sys登入
@$ORACLE_HOME/rdbms/admin/cataudit.sql;



因為預設是放於 system 這個 tablespace 上面,所以進行搬移的動作
--建立 tablespace (存放地方依情況改變)
CREATE TABLESPACE audit_tab DATAFILE
  '/storage1/u11/db/oradata/impdb/audit_tab.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 2048M

DROP TABLE SYS.AUD$ CASCADE CONSTRAINTS;

CREATE TABLE SYS.AUD$
(
  SESSIONID        NUMBER                       NOT NULL,
  ENTRYID          NUMBER                       NOT NULL,
  STATEMENT        NUMBER                       NOT NULL,
  TIMESTAMP#       DATE                         NOT NULL,
  USERID           VARCHAR2(30 BYTE),
  USERHOST         VARCHAR2(128 BYTE),
  TERMINAL         VARCHAR2(255 BYTE),
  ACTION#          NUMBER                       NOT NULL,
  RETURNCODE       NUMBER                       NOT NULL,
  OBJ$CREATOR      VARCHAR2(30 BYTE),
  OBJ$NAME         VARCHAR2(128 BYTE),
  AUTH$PRIVILEGES  VARCHAR2(16 BYTE),
  AUTH$GRANTEE     VARCHAR2(30 BYTE),
  NEW$OWNER        VARCHAR2(30 BYTE),
  NEW$NAME         VARCHAR2(128 BYTE),
  SES$ACTIONS      VARCHAR2(19 BYTE),
  SES$TID          NUMBER,
  LOGOFF$LREAD     NUMBER,
  LOGOFF$PREAD     NUMBER,
  LOGOFF$LWRITE    NUMBER,
  LOGOFF$DEAD      NUMBER,
  LOGOFF$TIME      DATE,
  COMMENT$TEXT     VARCHAR2(4000 BYTE),
  CLIENTID         VARCHAR2(64 BYTE),
  SPARE1           VARCHAR2(255 BYTE),
  SPARE2           NUMBER,
  OBJ$LABEL        RAW(255),
  SES$LABEL        RAW(255),
  PRIV$USED        NUMBER,
  SESSIONCPU       NUMBER
)
TABLESPACE audit_tab
;

CREATE INDEX SYS.I_AUD1 ON SYS.AUD$
(SESSIONID, SES$TID)
LOGGING
TABLESPACE audit_tab
;

GRANT DELETE ON SYS.AUD$ TO DELETE_CATALOG_ROLE;


建立 audit 的目錄,預設是放於  ?/rdbms/audit ,我是跟 db 的 log 檔放於同一層
[oracle@traindb ~]$ cd $ORACLE_BASE
[oracle@traindb oracle]$ cd admin/
[oracle@traindb admin]$ cd impdb/
[oracle@traindb impdb]$ ls
bdump  cdump  create  pfile  udump
[oracle@traindb impdb]$ mkdir audit
[oracle@traindb impdb]$ chmod 775 audit/
[oracle@traindb impdb]$ cd audit/
[oracle@traindb audit]$ pwd
/opt/app/oracle/admin/impdb/audit

使用 sys 設定開起 audit 相關的設定
alter system set audit_trail=DB scope=spfile;
alter system set audit_sys_operations = true scope=spfile;
alter system set audit_file_dest='/opt/app/oracle/admin/impdb/audit' scope=spfile;

重起 db
shutdown immediate;
startup ;

設定要 audit 的範圍
audit ALTER ANY CLUSTER;

audit ALTER ANY DIMENSION;

audit ALTER ANY INDEX;

audit ALTER ANY INDEXTYPE;

audit ALTER ANY LIBRARY;

audit ALTER ANY OUTLINE;

audit ALTER ANY PROCEDURE;

audit ALTER ANY ROLE;

audit ALTER ANY SEQUENCE;

audit ALTER ANY SNAPSHOT;

audit ALTER ANY TABLE;

audit ALTER ANY TRIGGER;

audit ALTER ANY TYPE;

audit ALTER DATABASE;

audit ALTER PROFILE;

audit ALTER RESOURCE COST;

audit ALTER ROLLBACK SEGMENT;

audit ALTER SESSION;

audit ALTER SYSTEM;

audit ALTER TABLE;

audit ALTER TABLESPACE;

audit ALTER USER;

audit ANALYZE ANY;

audit AUDIT ANY;

audit AUDIT SYSTEM;

audit BACKUP ANY TABLE;

audit BECOME USER;

audit COMMENT ANY TABLE;

audit CREATE ANY CLUSTER;

audit CREATE ANY CONTEXT;

audit CREATE ANY DIMENSION;

audit CREATE ANY DIRECTORY;

audit CREATE ANY INDEX;

audit CREATE ANY INDEXTYPE;

audit CREATE ANY LIBRARY;

audit CREATE ANY MATERIALIZED VIEW;

audit CREATE ANY OPERATOR;

audit CREATE ANY OUTLINE;

audit CREATE ANY PROCEDURE;

audit CREATE ANY SEQUENCE;

audit CREATE ANY SNAPSHOT;

audit CREATE ANY SYNONYM;

audit CREATE ANY TABLE;

audit CREATE ANY TRIGGER;

audit CREATE ANY TYPE;

audit CREATE ANY VIEW;

audit CREATE CLUSTER;

audit CREATE DATABASE LINK;

audit CREATE DIMENSION;

audit CREATE INDEXTYPE;

audit CREATE LIBRARY;

audit CREATE MATERIALIZED VIEW;

audit CREATE OPERATOR;

audit CREATE PROCEDURE;

audit CREATE PROFILE;

audit CREATE PUBLIC DATABASE LINK;

audit CREATE PUBLIC SYNONYM;

audit CREATE ROLE;

audit CREATE ROLLBACK SEGMENT;

audit CREATE SEQUENCE;

audit CREATE SESSION;

audit CREATE SNAPSHOT;

audit CREATE SYNONYM;

audit CREATE TABLE;

audit CREATE TABLESPACE;

audit CREATE TRIGGER;

audit CREATE TYPE;

audit CREATE USER;

audit CREATE VIEW;

audit DELETE ANY TABLE;

audit DROP ANY CLUSTER;

audit DROP ANY CONTEXT;

audit DROP ANY DIMENSION;

audit DROP ANY DIRECTORY;

audit DROP ANY INDEX;

audit DROP ANY INDEXTYPE;

audit DROP ANY LIBRARY;

audit DROP ANY MATERIALIZED VIEW;

audit DROP ANY OPERATOR;

audit DROP ANY OUTLINE;

audit DROP ANY PROCEDURE;

audit DROP ANY ROLE;

audit DROP ANY SEQUENCE;

audit DROP ANY SNAPSHOT;

audit DROP ANY SYNONYM;

audit DROP ANY TABLE;

audit DROP ANY TRIGGER;

audit DROP ANY TYPE;

audit DROP ANY VIEW;

audit DROP PROFILE;

audit DROP PUBLIC DATABASE LINK;

audit DROP PUBLIC SYNONYM;

audit DROP ROLLBACK SEGMENT;

audit DROP TABLESPACE;

audit DROP USER;

audit DROP PROFILE;

audit DROP PUBLIC DATABASE LINK;

audit DROP PUBLIC SYNONYM;

audit DROP ROLLBACK SEGMENT;

audit DROP TABLESPACE;

audit DROP USER;

audit EXECUTE ANY INDEXTYPE;

audit EXECUTE ANY LIBRARY;

audit EXECUTE ANY OPERATOR;

audit EXECUTE ANY PROCEDURE;

audit EXECUTE ANY TYPE;

audit FORCE ANY TRANSACTION;

audit FORCE TRANSACTION;

audit GLOBAL QUERY REWRITE;

audit GRANT ANY PRIVILEGE;

audit GRANT ANY ROLE;

audit LOCK ANY TABLE;

audit MANAGE TABLESPACE;

audit QUERY REWRITE;

audit RESTRICTED SESSION;

audit SESSION;



我是建立個只能查看 audit 相關資訊的 user ,請參考
CREATE USER PNADMIN
  IDENTIFIED BY VALUES 'BB720BE989C82955'
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 2 Roles for PNADMIN
  GRANT CONNECT TO PNADMIN;
  GRANT RESOURCE TO PNADMIN;
  ALTER USER PNADMIN DEFAULT ROLE NONE;
  -- 2 System Privileges for PNADMIN
  GRANT CREATE SESSION TO PNADMIN;
  GRANT UNLIMITED TABLESPACE TO PNADMIN;
  -- 1 Tablespace Quota for PNADMIN
  ALTER USER PNADMIN QUOTA UNLIMITED ON USERS;
  -- 1 Object Privilege for PNADMIN
    GRANT SELECT ON SYS.DBA_AUDIT_TRAIL TO PNADMIN; --這個一定要給

測試方法
select count(*) from dba_audit_trail; --應該會有幾筆

維護 :
1、因為記錄 audit 是記錄於 SYS.AUD$,所以可以使用 imp/dump 、 truncate 進行重整
2、注意 audit 目錄所暫的空間跟 SYS.AUD$  table 的空間使用,可定時刪除或備份

附記:
取消 audit 的指令
noaudit ALTER ANY CLUSTER;

noaudit ALTER ANY DIMENSION;

noaudit ALTER ANY INDEX;

noaudit ALTER ANY INDEXTYPE;

noaudit ALTER ANY LIBRARY;

noaudit ALTER ANY OUTLINE;

noaudit ALTER ANY PROCEDURE;

noaudit ALTER ANY ROLE;

noaudit ALTER ANY SEQUENCE;

noaudit ALTER ANY SNAPSHOT;

noaudit ALTER ANY TABLE;

noaudit ALTER ANY TRIGGER;

noaudit ALTER ANY TYPE;

noaudit ALTER DATABASE;

noaudit ALTER PROFILE;

noaudit ALTER RESOURCE COST;

noaudit ALTER ROLLBACK SEGMENT;

noaudit ALTER SESSION;

noaudit ALTER SYSTEM;

noaudit ALTER TABLE;

noaudit ALTER TABLESPACE;

noaudit ALTER USER;

noaudit ANALYZE ANY;

noaudit AUDIT ANY;

noaudit AUDIT SYSTEM;

noaudit BACKUP ANY TABLE;

noaudit BECOME USER;

noaudit COMMENT ANY TABLE;

noaudit CREATE ANY CLUSTER;

noaudit CREATE ANY CONTEXT;

noaudit CREATE ANY DIMENSION;

noaudit CREATE ANY DIRECTORY;

noaudit CREATE ANY INDEX;

noaudit CREATE ANY INDEXTYPE;

noaudit CREATE ANY LIBRARY;

noaudit CREATE ANY MATERIALIZED VIEW;

noaudit CREATE ANY OPERATOR;

noaudit CREATE ANY OUTLINE;

noaudit CREATE ANY PROCEDURE;

noaudit CREATE ANY SEQUENCE;

noaudit CREATE ANY SNAPSHOT;

noaudit CREATE ANY SYNONYM;

noaudit CREATE ANY TABLE;

noaudit CREATE ANY TRIGGER;

noaudit CREATE ANY TYPE;

noaudit CREATE ANY VIEW;

noaudit CREATE CLUSTER;

noaudit CREATE DATABASE LINK;

noaudit CREATE DIMENSION;

noaudit CREATE INDEXTYPE;

noaudit CREATE LIBRARY;

noaudit CREATE MATERIALIZED VIEW;

noaudit CREATE OPERATOR;

noaudit CREATE PROCEDURE;

noaudit CREATE PROFILE;

noaudit CREATE PUBLIC DATABASE LINK;

noaudit CREATE PUBLIC SYNONYM;

noaudit CREATE ROLE;

noaudit CREATE ROLLBACK SEGMENT;

noaudit CREATE SEQUENCE;

noaudit CREATE SESSION;

noaudit CREATE SNAPSHOT;

noaudit CREATE SYNONYM;

noaudit CREATE TABLE;

noaudit CREATE TABLESPACE;

noaudit CREATE TRIGGER;

noaudit CREATE TYPE;

noaudit CREATE USER;

noaudit CREATE VIEW;

noaudit DELETE ANY TABLE;

noaudit DROP ANY CLUSTER;

noaudit DROP ANY CONTEXT;

noaudit DROP ANY DIMENSION;

noaudit DROP ANY DIRECTORY;

noaudit DROP ANY INDEX;

noaudit DROP ANY INDEXTYPE;

noaudit DROP ANY LIBRARY;

noaudit DROP ANY MATERIALIZED VIEW;

noaudit DROP ANY OPERATOR;

noaudit DROP ANY OUTLINE;

noaudit DROP ANY PROCEDURE;

noaudit DROP ANY ROLE;

noaudit DROP ANY SEQUENCE;

noaudit DROP ANY SNAPSHOT;

noaudit DROP ANY SYNONYM;

noaudit DROP ANY TABLE;

noaudit DROP ANY TRIGGER;

noaudit DROP ANY TYPE;

noaudit DROP ANY VIEW;

noaudit DROP PROFILE;

noaudit DROP PUBLIC DATABASE LINK;

noaudit DROP PUBLIC SYNONYM;

noaudit DROP ROLLBACK SEGMENT;

noaudit DROP TABLESPACE;

noaudit DROP USER;

noaudit DROP PROFILE;

noaudit DROP PUBLIC DATABASE LINK;

noaudit DROP PUBLIC SYNONYM;

noaudit DROP ROLLBACK SEGMENT;

noaudit DROP TABLESPACE;

noaudit DROP USER;

noaudit EXECUTE ANY INDEXTYPE;

noaudit EXECUTE ANY LIBRARY;

noaudit EXECUTE ANY OPERATOR;

noaudit EXECUTE ANY PROCEDURE;

noaudit EXECUTE ANY TYPE;

noaudit FORCE ANY TRANSACTION;

noaudit FORCE TRANSACTION;

noaudit GLOBAL QUERY REWRITE;

noaudit GRANT ANY PRIVILEGE;

noaudit GRANT ANY ROLE;

noaudit LOCK ANY TABLE;

noaudit MANAGE TABLESPACE;

noaudit QUERY REWRITE;

noaudit RESTRICTED SESSION;

noaudit SESSION;







Posted by my_work at 樂多Roodo! │14:59 │回應(0)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:編輯本文
標籤:Oracle
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/8493777