首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户如何连接SysDBA?

用户如何连接SysDBA?
EN

Stack Overflow用户
提问于 2013-01-31 18:20:18
回答 1查看 3.2K关注 0票数 0

我们在数据库上启动Oracle审计和Onlogon过程审计。我们搞不懂,SysDBA能连接到什么系统。SysDBA是甲骨文用户吗?在SQL*Plus中有一个命令来处理这个帐户吗?

On Logon PL/SQL代码

代码语言:javascript
复制
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
  );

Select * From logon_log

代码语言:javascript
复制
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?

其他数据:

代码语言:javascript
复制
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      
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-31 22:55:07

你看到的并不是你想的那样。你问“SysDBA甲骨文是用户吗?”,答案是“否”。SYSDBA is a system privilege,不是predefined user account provided by Oracle。被授予该权限的用户可以使用管理权限进行连接,例如:

代码语言:javascript
复制
connect / as sysdba

这与你的SysDBA用户的连接方式是完全不同的:

代码语言:javascript
复制
connect "SysDBA"/sysdba

用户是由组织中的某个人在您的数据库中创建的;它不是默认的Oracle帐户,它们是完全无关的,尽管我认为它也可能被授予SYSDBA特权,只是为了给您带来麻烦。(是的,这就是我担心的密码)。

还要注意,它是在大小写混合的情况下创建的,这意味着在查询之外使用它时需要加引号。您可以执行以下操作:

代码语言:javascript
复制
select * from dba_users where username = 'SysDBA';

..。但是,如果不是引用表列的值,就必须用引号将其引起来,如上面的connectalter user中所示

代码语言:javascript
复制
alter user "SysDBA" account lock;

它看起来可能是一个应用程序的内部帐户,并且没有设置模块(v$session.program?)通过dbms_application_info调用-因此可能是内部应用程序。如果是这样的话,你也许能够找出它为什么在那里,它在做什么,为什么它被赋予了一个令人困惑的名字,但锁定它可能会给运行该应用程序的人带来问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14623402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档