Oracle 用户如何连接SysDBA?

Oracle 用户如何连接SysDBA?,oracle,security,audit,database-administration,Oracle,Security,Audit,Database Administration,我们在数据库上启动Oracle审计和Onlogon过程审计。 我们弄糊涂了,SysDBA可以连接到哪个系统。SysDBA是Oracle用户吗? 在SQL*Plus中,是否有此帐户的命令 我们的登录PL/SQL代码 CREATE OR REPLACE TRIGGER logon_audit_trigger AFTER LOGON ON DATABASE ... insert into logon_log (user_id , session_id ,

我们在数据库上启动Oracle审计和Onlogon过程审计。 我们弄糊涂了,SysDBA可以连接到哪个系统。SysDBA是Oracle用户吗? 在SQL*Plus中,是否有此帐户的命令

我们的登录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
  );
从登录日志中选择*

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      

你没有完全明白你的想法。您询问“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
?),因此可能是一个内部应用程序。如果是这样的话,您可能会发现它为什么在那里以及它在做什么,以及它为什么被命名为一个令人困惑的名称,但是锁定它可能会给运行该应用程序的人带来问题。

您需要与DBA/安装Oracle的人谈谈。SYSDBA是具有DBA权限的Oracle系统用户。你真的不应该用它。我发现该用户的资本化可疑(即,它实际上可能不是SYSDBA)。它在输出中呈现为SYSDBA还是SYSDBA?在输出中呈现为SYSDBA,这种类型的用户让我们感到困惑。。。选择*from dba_user-->结果:239 SysDBA 390 BD40E271960C5535 OPEN USERS TEMP 8/1/2012 10:28:51 AM DEFAULT_CONSUMER_groups这真的是同一个问题吗?作为SysDBA连接
和作为
SysDBA
用户连接之间有很大的区别。用户
SYSDBA
不存在;因为它是用混合大小写创建的(真的吗?谁认为这是个好主意?),使用时需要引用它,例如,
alter“SysDBA”account lock
。您的应用程序中可能有东西正在连接到该帐户,因此锁定它可能会破坏一切。@Ben-
SYSDBA
是一种系统特权,而不是用户帐户;我不希望在
dba\u用户中看到它(无论如何!)。