0

データベースでOracle AUDITおよびOnlogon手順の監査を開始します。私たちは混乱しました, SysDBAがシステムに接続できるもの. SysDBA は Oracle ユーザーですか? SQL*Plus には、このアクションのコマンドがありますか?

On Logon PL/SQL コード

CREATE OR REPLACE TRIGGER logon_audit_trigger AFTER LOGON ON DATABASE
...
   insert into logon_log
   (user_id       ,
     session_id    ,
     sid   ,
     serial#  ,
     host          ,
     ip_address  ,
     last_action   ,
     last_module   ,
     logon_day     ,
     logon_time    ,
     logoff_day    ,
     logoff_time   ,
     elapsed_minutes,
     elapsed_seconds)
   values(
     user,
     sys_context('USERENV','SESSIONID'),
     sys_context('USERENV','SID'),
     dbms_debug_jdwp.current_session_serial,
     sys_context('USERENV','HOST'),
     sys_context('USERENV','IP_ADDRESS'),
     action_name,
     module_name,
     lo_dt,
     to_char(lo_dt, 'hh24:mi:ss'),
     null,
     null,
     null,
     null
  );

選択 * logon_log から

USER_ID          SESSION_ID     SID    SERIAL#  HOST          IP_ADDRESS         LAST_MODULE      LOGON_DAY
JOHN               393900       282    1186     ERO\APPS      192.168.1.103      frmweb.exe       1/31/2013 9:27:49 AM
JOHN               393903       189    1005     ERO\SECC      192.168.1.110      SQL*Plus         1/31/2013 9:28:12 AM
JOHN               393929       167    288      ERO\SECC      192.168.1.110      plsqldev.exe     1/31/2013 9:38:37 AM
JOHN               393930       198    858      ERO\SECC      192.168.1.110      plsqldev.exe     1/31/2013 9:38:37 AM
JOHN               393983       179    6066     ERO\SECC      192.168.1.110      frmbld.exe       1/31/2013 9:58:21 AM
JOHN               393987       182    231      ERO\SECC      192.168.1.110      frmbld.exe       1/31/2013 9:59:17 AM
JOHN               393941       278    1429     ERO\SECC      192.168.1.110      plsqldev.exe     1/31/2013 9:42:26 AM
JOHN               394060       305    1337     ERO\SECC      192.168.1.110      plsqldev.exe     1/31/2013 10:36:34 AM
JOHN               394129       261    5236     ERO\SECC      192.168.1.110      plsqldev.exe     1/31/2013 11:16:40 AM
JOHN               394196       269    783      ERO\SECC      192.168.1.110      SQL*Plus         1/31/2013 11:58:20 AM
JOHN               394199       309    701      ERO\APPS      192.168.1.103      frmweb.exe       1/31/2013 12:00:04 PM
JOHN               394240       196    578      ERO\SECC      192.168.1.110      SQL*Plus         1/31/2013 12:28:53 PM
JPHN               394243       248    702      ERO\SECC      192.168.1.110      frmbld.exe       1/31/2013 12:30:56 PM
SysDBA             394249       196    580      ERO\SECC      192.168.1.110                       1/31/2013 12:31:56 PM
JOHN               394252       248    704      ERO\SECC      192.168.1.110      frmbld.exe       1/31/2013 12:32:57 PM
JOHN               394259       248    706      ERO\SECC      192.168.1.110      frmbld.exe       1/31/2013 12:35:29 PM
JOHN               394263       196    587      ERO\SECC      192.168.1.110      SQL*Plus         1/31/2013 12:36:49 PM
SysDBA             394264       196    589      ERO\SECC      192.168.1.110                       1/31/2013 12:37:07 PM

UserID が SysDBA である理由

追加データ:

Select * From DBA_USER

USERNAME               SysDBA
USER_ID                390
PASSWORD               BD40E271960C5535
ACCOUNT_STATUS         OPEN
LOCK_DATE   
EXPIRY_DATE 
DEFAULT_TABLESPACE     USERS
TEMPORARY_TABLESPACE   TEMP
CREATED                8/1/2012 10:28:51 AM
PROFILE                DEFAULT
INITIAL_RSRC_CONSUMER_GROUP     DEFAULT_CONSUMER_GROUP
EXTERNAL_NAME      
4

1 に答える 1

1

あなたは自分が考えていることを完全には見ていません。「SysDBA は Oracle ユーザーですか?」という質問に対する答えは「いいえ」です。SYSDBAはシステム権限であり、Oracle が提供する定義済みのユーザー アカウントではありません。その権限を付与されたユーザーは、次のような管理者権限で接続できます。

connect / as sysdba

SysDBAこれは、ユーザーが接続できる方法とは大きく異なります。

connect "SysDBA"/sysdba

ユーザーは、組織内の誰かによってデータベース内に作成されました。これはデフォルトの Oracle アカウントではなく、完全に無関係SYSDBAです。(そして、はい、それは私が恐れているパスワードです)。

また、大文字と小文字が混在して作成されていることに注意してください。つまり、クエリの外で使用する場合は引用符で囲む必要があります。できるよ:

select * from dba_users where username = 'SysDBA';

...しかし、テーブルの列の値を参照していない場合は、connect上記および次のようなものに示すように、引用符で囲む必要がありalter userます。

alter user "SysDBA" account lock;

おそらくアプリケーションの内部アカウントでありv$session.program、呼び出しを介してモジュール ( ?) を設定していないdbms_application_infoため、おそらく社内アプリケーションのようです。もしそうなら、なぜそこにあるのか、何をしているのか、そしてなぜ紛らわしい名前が付けられているのかを知ることができるかもしれませんが、ロックすると、そのアプリケーションを実行している人に問題が発生する可能性があります.

于 2013-01-31T14:55:07.060 に答える