Oracle 11g開啟只讀使用者和管理員使用者SQL審計

feelpurple發表於2016-06-20
--將包括SQL的審計記錄寫到資料庫的審計路徑(SYS.AUD$表),修改此資料庫引數,需要重啟例項
C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 20 10:02:42 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> SHOW PARAMETER AUDIT_TRAIL

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      DB


SQL> ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE;

系統已更改。

SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area 1068937216 bytes
Fixed Size                  2182592 bytes
Variable Size             616563264 bytes
Database Buffers          444596224 bytes
Redo Buffers                5595136 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> SHOW PARAMETER AUDIT_TRAIL


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      DB, EXTENDED

--對只讀使用者query和管理員使用者system開啟語句審計

SQL> AUDIT ALL STATEMENTS BY query BY ACCESS;

審計已成功。

SQL> AUDIT ALL STATEMENTS BY system BY ACCESS;

審計已成功。

--進行測試
--使用query使用者進行查詢
SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20
      7499 ALLEN      SALESMAN        7698 1981-02-20 00:00:00       1600        300         30
      7521 WARD       SALESMAN        7698 1981-02-22 00:00:00       1250        500         30
      7566 JONES      MANAGER         7839 1981-04-02 00:00:00       2975                    20
      7654 MARTIN     SALESMAN        7698 1981-09-28 00:00:00       1250       1400         30
      7698 BLAKE      MANAGER         7839 1981-05-01 00:00:00       2850                    30
      7782 CLARK      MANAGER         7839 1981-06-09 00:00:00       2450                    10
      7788 SCOTT      ANALYST         7566 1987-04-19 00:00:00       3000                    20
      7839 KING       PRESIDENT            1981-11-17 00:00:00       5000                    10
      7844 TURNER     SALESMAN        7698 1981-09-08 00:00:00       1500          0         30
      7876 ADAMS      CLERK           7788 1987-05-23 00:00:00       1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 1981-12-03 00:00:00        950                    30
      7902 FORD       ANALYST         7566 1981-12-03 00:00:00       3000                    20
      7934 MILLER     CLERK           7782 1982-01-23 00:00:00       1300                    10

已選擇14行。

--使用system使用者查詢query使用者的審計記錄
SQL> select s.username,
  2         s.userhost,
  3         s.timestamp,
  4         s.owner,
  5         s.sessionid,
  6         s.action_name,
  7         s.sql_text
  8    from DBA_AUDIT_TRAIL s
  9   where s.username = 'QUERY'
 10     and s.timestamp > trunc(sysdate)
 11     and owner = 'SCOTT';

USERNAME   USERHOST   TIMESTAMP           OWNER    SESSIONID ACTION_NAM SQL_TEXT
---------- ---------- ------------------- ------- ---------- ---------- ---------------------------------------------
QUERY      WORKGROUP\ 2016-06-20 10:45:45 SCOTT       480314 SELECT     select * from scott.emp
           USER-4FU6K
           1AC9P

--使用system使用者進行測試

SQL> AUDIT ALL STATEMENTS BY zhangwenyuan BY ACCESS;

--使用system使用者查詢system使用者的審計記錄
SQL> select s.username,
  2         s.userhost,
  3         s.timestamp,
  4         s.owner,
  5         s.sessionid,
  6         s.action_name,
  7         s.sql_text
  8    from DBA_AUDIT_TRAIL s
  9   where s.username = 'SYSTEM'
 10     and s.timestamp > trunc(sysdate)
 11     and lower(sql_text) like '%audit all%';

USERNAME   USERHOST   TIMESTAMP           OWNER    SESSIONID ACTION_NAM SQL_TEXT
---------- ---------- ------------------- ------- ---------- ---------- ---------------------------------------------
SYSTEM     WORKGROUP\ 2016-06-20 11:07:16             480328 SYSTEM AUD AUDIT ALL STATEMENTS BY zhangwenyuan BY ACCES
           USER-4FU6K                                        IT         S
           1AC9P

SYSTEM     WORKGROUP\ 2016-06-20 14:13:24 SYS         480356 SELECT     select s.username,
           USER-4FU6K                                                          s.userhost,
           1AC9P                                                               s.timestamp,
                                                                               s.owner,
                                                                               s.sessionid,
                                                                               s.action_name,
                                                                               s.sql_text

USERNAME   USERHOST   TIMESTAMP           OWNER    SESSIONID ACTION_NAM SQL_TEXT
---------- ---------- ------------------- ------- ---------- ---------- ---------------------------------------------
                                                                          from DBA_AUDIT_TRAIL s
                                                                         where s.username = 'SYSTEM'
                                                                           and s.timestamp > trunc(sysdate)
                                                                           and lower(sql_text) like '%audit all%'

--將所有審計記錄儲存到作業系統檔案中,Oracle官方推薦使用這種方法,尤其是在對安全有較高要求的環境中。

SQL> ALTER SYSTEM SET AUDIT_TRAIL=OS SCOPE=SPFILE;

系統已更改。

--AUDIT_FILE_DEST引數指定作業系統審計記錄檔案的路徑。在UNIX系統上,預設的路徑是$ORACLE_HOME/admin/$ORACLE_SID/adump。為了更好的效能,可以將AUDIT_FILE_DEST引數設為資料庫例項本地的一個單獨路徑下。

SQL> show parameter AUDIT_FILE_DEST

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      E:\APP\ADMINISTRATOR\ADMIN\FLA
                                                 ME\ADUMP

--如果要審計SYSDBA和SYSOPER使用者的操作,需要將AUDIT_SYS_OPERATIONS引數設為TRUE

SQL> show parameter AUDIT_SYS_OPERATIONS

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_sys_operations                 boolean     FALSE

SQL> alter system set AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE;

系統已更改。

--重啟資料庫,以使引數生效

SQL> show parameter AUDIT_SYS_OPERATIONS

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_sys_operations                 boolean     TRUE
SQL> SHOW PARAMETER AUDIT_TRAIL

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      OS

--AUDIT_SYSLOG_LEVEL引數決定使用SYSLOG來記錄SYS使用者和標準的OS審計記錄,這個引數只適用於UNIX環境。

[oracle@PGAMEDB ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Jun 21 16:02:46 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

SQL> show parameter AUDIT_SYSLOG_LEVEL

NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_syslog_level     string

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

相關文章