Oracle 8x中監(jiān)控sysdba角色用戶登陸情況
2024-08-29 13:42:45
供稿:網(wǎng)友
在Oracle 8i版本之前,使用internal用戶來執(zhí)行數(shù)據(jù)庫的啟動(dòng)和關(guān)閉以及create database等操作;從8i版本以后,Oracle已經(jīng)逐漸淘汰了internal用戶,采用授與sysdba或者sysoper角色的用戶才可以執(zhí)行數(shù)據(jù)庫的啟動(dòng)和關(guān)閉等操作, 為保持用戶習(xí)慣在8i中依舊保留了internal用戶和svrmgrl,但已完全可以不使用svrmgrl工具和internal用戶了。最新發(fā)布的oracle 9i已經(jīng)完全淘汰了svrmgrl工具和internal用戶。由于具有角色sysdba的用戶權(quán)限很大,可以執(zhí)行數(shù)據(jù)庫的啟動(dòng)和關(guān)閉等操作,所以要對(duì)具有這些角色的用戶進(jìn)行監(jiān)控
在unix平臺(tái)的Oracle數(shù)據(jù)庫產(chǎn)品中,每次當(dāng)用戶以sysdba權(quán)限登陸數(shù)據(jù)庫時(shí),系統(tǒng)就自動(dòng)創(chuàng)建一個(gè)名為ora_.aud的文件,該文件默認(rèn)在$ORACLE_HOME/rdbms/audit目錄下。該文件的自動(dòng)創(chuàng)建根本不需要系統(tǒng)打開審計(jì)功能。在這個(gè)文件中記錄了連接的用戶,終端機(jī)器的名稱以及登陸時(shí)間等信息。根據(jù)這些信息,我們可以很輕易地監(jiān)控到是何人在何時(shí)以sysdba權(quán)限登陸數(shù)據(jù)庫。下面是一個(gè)例子:
1. 首先在客戶端sqlplus中以sysdba連接數(shù)據(jù)庫服務(wù)器:
SQL> conn sys@gs1 as sysdba
請(qǐng)輸入口令:********
已連接。
2. 查看服務(wù)器端$ORACLE_HOME/rdbms/audit目錄下最新的ora_.aud文件內(nèi)容:
nBTax1> cat ora_589980.aud
Audit file /ora1/oracle/app/PRodUCt/8.1.6/rdbms/audit/ora_589980.aud
Oracle8i Enterprise Edition Release 8.1.6.3.0 - Production
With the Partitioning and Parallel Server options
JServer Release 8.1.6.3.0 - Production
ORACLE_HOME = /ora1/oracle/app/product/8.1.6
System name: OSF1 -- 系統(tǒng)名稱
Node name: nbtax1 -- 節(jié)點(diǎn)名稱
Release: V5.1 -- 操作系統(tǒng)版本號(hào)
Version: 732
Machine: alpha -- 服務(wù)器名稱
Instance name: nbgs1 -- 實(shí)例名稱
Redo thread mounted by this instance: 1
Oracle process number: 247 -- Oracle 進(jìn)程號(hào)
Unix process pid: 589980, image: oracle@nbtax1 (TNS V1-V3)
Fri Sep 21 10:26:57 2001 -- 登陸時(shí)間
ACTION : 'connect internal' OSPRIV : DBA -- 執(zhí)行何種操作
CLIENT USER: Administrator -- 客戶端用戶名稱
CLIENT TERMINAL: XIAOFEISHI -- 客戶端終端名稱
從上面文件中的內(nèi)容我們可以看到,該文件具體記錄了登陸時(shí)間,執(zhí)行的操作,客戶端用戶的名稱,以及登陸服務(wù)器終端機(jī)器的名稱。根據(jù)這些信息我們就很輕易確定何人何時(shí)以sysdba權(quán)限登陸過數(shù)據(jù)庫服務(wù)器。注重ora_589980.aud文件中的漢字解釋均為作者所加,不是系統(tǒng)自動(dòng)生成。