奇怪,不过nw是不是asc中的sysdba啊?

解决方案 »

  1.   

    我遇到类似的问题。就是如果在本机,随便敲个用户名、密码,服务名要对,用sysdba都能登陆。如:SQL*Plus: Release 8.1.7.0.0 - Production on 星期日 7月 28 21:26:31 2002(c) Copyright 2000 Oracle Corporation.  All rights reserved.
    连接到: 
    Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.7.0.0 - ProductionSQL> connect aaa/aaa@suntec as sysdba
    已连接。
    SQL> show user
    USER 为"SYS"但在客户端机器上是无法登录到服务器的
      

  2.   

    楼上是否是以nolog打开sqlplus?在这个时候可能是以软件属主身份连接了。相当于conn /  as sysdba
      

  3.   

    tlbbqf(为伊消的人憔悴) 
    见贴后试了一下,在客户端机器上登录服务器(aaa用户不存在)
    SQL> conn aaa/aaa@asc as sysdba
    Connected.
    SQL> show user
    USER is "SYS"难道这是oracle的一个安全漏洞???
      

  4.   

    我这边没有这个问题,为什么?Connected to:
    Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production
    With the Partitioning option
    JServer Release 8.1.7.2.0 - 64bit ProductionSQL> conn dev/[email protected] as sysdba
    ERROR:
    ORA-01031: insufficient privileges
    Warning: You are no longer connected to ORACLE.
      

  5.   


    SQL*Plus: Release 8.1.6.0.0 - Production on Mon Jul 29 12:21:49 2002(c) Copyright 1999 Oracle Corporation.  All rights reserved.
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production
    With the Partitioning and Parallel Server options
    JServer Release 8.1.7.2.0 - 64bit ProductionSQL> conn aaa/aaa@n1 as sysdba
    ERROR:
    ORA-01031: insufficient privileges
    Warning: You are no longer connected to ORACLE.
      

  6.   

    各位大虾:
        这个问题在我的机器上确实存在,决非小弟胡言乱语。服务器上的oracle8.1.7是从网上下载的。
        一开始我只是想看一下以sysdba登陆权限不够时的出错信息,没想到竟然成功登陆,后来才发现新建用户也可以。今天早上看了tlbbqf(为伊消的人憔悴)的贴子后再试,更是发现任意输入用户名和密码都可以,而且也确实有权限操作数据库。自己弄不懂,资料查不到。又试了一下(df也是一个不存在的用户)
    SQL*Plus: Release 8.1.7.0.0 - Production on Mon Jul 29 13:36:47 2002(c) Copyright 2000 Oracle Corporation.  All rights reserved.SQL> conn aaa/aaa@asc as sysdba
    Connected.
    SQL> select * from v$pwfile_users;USERNAME                       SYSDB SYSOP
    ------------------------------ ----- -----
    INTERNAL                       TRUE  TRUE
    SYS                            TRUE  TRUESQL> conn df@asc as sysdba
    Enter password: **          
    ERROR:
    ORA-01017: invalid username/password; logon denied
    Warning: You are no longer connected to ORACLE.
    SQL> conn df/df@asc as sysdba
    Connected.
      

  7.   

    今天下午又对这个问题进行了测试。
    1。我公司机子(非昨天家里机器)。
       在本机上用任意帐号,甚至不存在的帐号都能以sysdba登上去。
       客户端则不能如此。并且无法用system,scott等实际上具有dba权限的帐号以sysdba,sysoper登录,只有internal可以。
    2。公司一台HP服务器。
       在本机和客户端上都无法用system,scott等实际上具有dba权限的帐号以sysdba,sysoper登录,只有internal可以。问题:
    1。 本机用任意帐号登录是不应该的,正如zhoubf725(天上的鸟,怎能踢到) 所说可能是以nt帐号登录,就如sql server的windows authentication登录,如何能去掉这种登录方式呢?
    2。为什么具有dba权限的帐号无法登录,而只有internal可以登录呢?事实上,在我维护的数个客户系统中,都是可以登录的。现在这数台机器出现问题,问题在什么地方呢?
       哦,对了。我这些测试都在dos下,进入svrmgrl,用connect来连接的。没有用nolog来登陆
      

  8.   

    你用的是操作系统认证事实上 / AS SYSDBA 就说明问题了.
    如果你用密码文件认证客户端也是可以 / AS SYSDBA连上去的.
    这时ORACLE的管理方式非BUG
      

  9.   

    密切关注!我这里不存在这种情况,不过只有INTERNAL可带AS SYSDBA登陆,SYSTEM都不行。我的AIX817
      

  10.   

    to wzcyc(oracle) :
    你说的有些道理。还有不明白的地方
    1.如果as sysdba是操作系统认证,那么你说的密码文件认证客户端如何设呢?
    2.为什么具有dba权限的用户无法以sysoper,sysdba登录呢?而只有internal可以呢?
      

  11.   

    anwer:
    1.建立密码文件
    $orapwd file=$ORACLE_HOME/dbs/orapwdSID password=admin entries=10 ;
    设置INIT.ORA 的REMOTE_LOG_PASSWORD TO EXCLUSIVE OR SHARED;
    2.ORACLE真正的DBA 只有INTERNAL.其他的如SYSTEM,SYS只是有特殊权限的普通用户.
      

  12.   

    这和密码文件无关,只要修改init.ora与sqlnet.ora即可。
    init.ora
    remote_os_authent=true
    remote_os_role=true
    remote_os_prifex='OPS$'sqlnet.ora
    authent.xxx={NTS}===>authent.xxx={NONE}
      

  13.   

    to  jaguarcts(jaguarcts):
    你说的在init.ora中设定
    remote_os_authent=true
    remote_os_role=true
    remote_os_prifex='OPS$'
    有问题,设好后,在启动oracle,回报错:
    LRM-00101: unknown parameter name 'remote_os_role'
    LRM-00101: unknown parameter name 'remote_os_prifex'
    ORA-01078: 处理系统参数失败
    只有remote_os_authent=true可以通过,但是无效,在本机仍然可以随意以sysdba登陆。
    我印象中我在给我们公司几个客户维护时,是可以用sysoper登陆,但我现在在客户端也无法登陆。
    to wzcyc(oracle):
    能否详细一点在哪里建?
      

  14.   

    是orapwdSID这个文件?没找到呀
      

  15.   

    请问弱水三千用的是正版的Oracle吗?这种状况我已经见过好几十例了。一直弄不明白。我见过的所有机器都有这个毛病(盗版的)任意输入名字和密码加上as sysdba就可以登陆。
      

  16.   

    这是oracle 的一个安全漏洞,决非偶然
      

  17.   

    不会吧?这要是bug,那oracle的安全性太差了吧?我想应该有办法的
      

  18.   

    将sqlnet.authentXXX=(NTS)就可以限制。
    xxx等字符记不清啦。
      

  19.   

    是SQLNET.AUTHENTICATION_SERVICES= (NTS)吧?
    我本来就是这样设的呀。还是轻易登陆成功
      

  20.   

    将sqlnet.ora(位于$ORACLE_HOME/NETWORK/ADMIN目录中)中的SQLNET.AUTHENTICATION_SERVICES= (NONE) 就可以了。
    这不是oracle 的安全漏洞!!而是认证方式不同,一般对sysdba的管理有两种方式:操作系统认证和密码文件认证。
    将SQLNET.AUTHENTICATION_SERVICES= (NTS),即选择了os认证方式。 这样数据库的安全性就是基于操作系统的安全性之上的。既然用connect internal可以登入,那用connect aaaaaa/aaaaaa as sysdba登入又何妨?谁能告诉我这两种方式在安全性上有何区别?是吧!
      

  21.   

    TO nowhappy() :
    你是对的!
    区别我想这儿已经很明显,是os认证或oracle认证,sql server里也有。
    遵守诺言,我开一个帖子,你去领分。
      

  22.   

    to:tlbbqf(为伊消的人憔悴) 
    谢谢!
    我要怎么领分?
    还有一点,如果是nt平台,需要有一个ora_dba组,并且你登入的用户要加到这个组中才可以。
      

  23.   

    你到
    http://www.csdn.net/expert/topic/987/987934.xml?temp=.2742884
    回答一下就行。
    能说的具体点吗?
    你指的这个组用来做什么?是用来让所有这个组里的用户都能通过os验证登录?这从安全性来说应该不允许呀。如果是登录到域,有过登录主域验证。是不是可以绕过oracle认证。实际应用上,我不认为可以这样做
      

  24.   

    这个组的描述为:Members can connect to the Oracle database as a DBA without a password。在os认证的基础上并不是每个user都可以connect的,而是要有ora_dba权限的user才可以connect without psw的。这应该更合实际,对吧?
      

  25.   

    oracle里面的权限设定是没有这个组的呀。?
      

  26.   

    这个组是nt的组,因为你选择了os认证。