我在自己本机上安装了oracle10g,所有的用户都用了一个密码:666(网络服务名是:orcl,sid是orcl)
然后创建了一个用户,名字是:balance
当我用sqlplus登陆进去的时候,我想以sysdba身份登陆,所以敲入命令:conn balance/666 as sysdba可以登陆。
但我发现在输入:
SQL> conn as sysdba
请输入用户名:  orcl
输入口令:orcl
已连接。显示已经登陆,这是为什么。用户名明明是balance,密码明明是666,为什么我输入上面的用户名,密码也能登陆??????
大虾指教

解决方案 »

  1.   

    因为你使用了操作系统验证。
    也就是说,只要能够登录上安装了Oracle的服务器且登录用户在dba组中,那么oracle认为你就具有dba权限。
    可以通过下面的方法取消操作系统验证:修改$ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora

    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    前面加上#
      

  2.   

    我随便输了abcd的用户和密码进去,好像也能连接,并且查询。会不会是一个Bug来的?
      

  3.   

    2楼的,你的问题跟楼主一样,都是因为使用了操作系统验证;这个也是Oracle默认的。
    也就是说,只要你使用dba组的操作系统用户登录安装了Oracle的服务器,那么随便输入用户名密码都可能连接。这不是BUG,安全机制就是这样的。
    取消操作系统验证的方法1楼已经说了。