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
  );

选择 * 从 login_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 回答