Linux版 對sys用戶進行審計的示例

我們在操作數據庫的時候,知道SYS用戶的權限是最大的幹什麼事很方便,同時帶來的問題就是非常危險,沒有人可以束縛住。因此我們有時需要對SYS用戶進行審計

SYS@LEO1>show parameter audit

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

audit_file_dest                      string      /u02/app/oracle/admin/LEO1/adump

audit_sys_operations                 boolean     FALSE       默認SYS用戶審計是關閉的,這個參數是開啓審計SYS用戶所有SQL語句

audit_syslog_level                   string                   默認是關閉的,這個參數指出SYS用戶審計日誌的存放位置

audit_trail                          string      DB

SYS@LEO1>alter system setaudit_sys_operations=true scope=spfile;        打開SYS用戶審計

System altered.

SYS@LEO1>alter system setaudit_syslog_level='user.notice' scope=spfile;     用戶日誌

System altered.

SYS@LEO1>startup force                                          重啓數據庫使靜態參數生效

ORACLE instance started.

Total System Global Area  471830528 bytes

Fixed Size                  2214456 bytes

Variable Size             285214152 bytes

Database Buffers          176160768 bytes

Redo Buffers                8241152 bytes

Database mounted.

Database opened.

SYS@LEO1>show parameter audit

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

audit_file_dest                      string      /u02/app/oracle/admin/LEO1/adump

audit_sys_operations                 boolean     TRUE             審計啓動

audit_syslog_level                   string      USER.NOTICE   

audit_trail                          string      DB

設置sys用戶審計日誌輸出位置,Linux syslog.conf文件配置了各種類型日誌的輸出位置和消息源

我們只需要將Oracle日誌輸出配置信息添加到該文件中就可以了

[root@leonarding1 log]# vi /etc/syslog.conf

添加如下信息

# About Oracle SysLog

user.notice                                           /var/log/oracle_dbms

添加完之後,我們還要重新加載一下配置信息,syslog.conf文件生效

[root@leonarding1 log]# ps -ef | grepsyslogd

root     2385     1  0 Jun14 ?        00:00:01 syslogd -m 0

root    29740 29502  0 17:25 pts/1    00:00:00 grep syslogd

[root@leonarding1 log]# kill -HUP 2385                        重新加載

Ok,操作系統的配置內容完成了。

下面我們來演示一下SYS用戶的審計

SYS@LEO1>create table test as select *from dba_objects;      我們創建一個表

Table created.

SYS@LEO1>drop table test purge;                          再刪除一個表

Table dropped.

好了,SYS用戶操作做完了,我們來看看oracle_dbms審計日誌中有沒有抓取到SQL語句

[root@leonarding1 log]# cat oracle_dbms

Jun 15 18:08:40 leonarding1 OracleAudit[29903]: LENGTH : '199' ACTION :[46] 'create tabletest as select * from dba_objects' DATABASE USER:[1] '/' PRIVILEGE :[6]'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/3' STATUS:[1] '0'DBID:[10] '1692458681'

Jun 15 18:08:49 leonarding1 OracleAudit[29903]: LENGTH : '174' ACTION :[21] 'drop tabletest purge' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6]'oracle' CLIENT TERMINAL:[5] 'pts/3' STATUS:[1] '0' DBID:[10] '1692458681'

Good 創建表test和刪除表test的命令都抓取到了,例如startup  shutdown  connect等操作都是可以抓取到的。

小結:通過上面的測試實例,我們瞭解到了對數據庫管理員的審計也逐漸成爲信息安全中的重要一項,這樣可以對管理員人員進行監督,權限限制,提高數據庫安全級別,完善安全管理制度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章