用户如何连接SysDBA?

时间:2013-01-31 10:20:18

标签: oracle security audit database-administration

我们在数据库上启动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      

1 个答案:

答案 0 :(得分:1)

你没有看到你的想法。你问'是SysDBA Oracle用户吗?',答案就是'不'。 SYSDBA is a system privilege,而不是predefined user account provided by Oracle。被授予该权限的用户可以使用管理权限进行连接,例如:

connect / as sysdba

这与SysDBA用户可以连接的方式完全不同:

connect "SysDBA"/sysdba

组织中的某个人已在您的数据库中创建了用户;它不是默认的Oracle帐户,它们完全不相关,但我想可以想象它也可以被授予SYSDBA权限,只是为了真正搞砸你。 (是的,这真的是我害怕的密码)。

另请注意,它是使用混合大小写创建的,这意味着在查询外部使用时需要引用它。你可以这样做:

select * from dba_users where username = 'SysDBA';

...但如果您没有引用表格列值,则必须引用它,如上面的connectalter user之类的内容所示:

alter user "SysDBA" account lock;

看起来它可能是应用程序的内部帐户,而不是通过dbms_application_info调用设置模块(v$session.program?) - 因此可能是内部应用程序。如果是这样,你可能会发现它为什么存在以及它在做什么,为什么它被赋予一个令人困惑的名称,但锁定它可能会导致运行该应用程序的任何人出现问题。