sysdba不需要密码验证竟然可以直接登录,这还有安全可言吗?

 
  
  1. C:\Users>sqlplus /nolog  
  2.  
  3. SQL*Plus: Release 11.2.0.1.0 Production on 星期四 3月 1 14:16:04 2012  
  4.  
  5. Copyright (c) 1982, 2010, Oracle.  All rights reserved.  
  6.  
  7. SQL> conn / as sysdba  
  8. 已连接。  
  9. SQL> 

经过探索,原来oracle这是直接使用操作系统授权验证,只要当前登录OS的用户拥有足够的权限就可以使用sysdba登录了,在windows下有以下两种方式可以解除这种无密码登录:

方法一:修改%ORACLE_HOME%\network\admin\sqlnet.ora,注释掉以下行

 
  
  1. SQLNET.AUTHENTICATION_SERVICES= (NTS) 

方法二:将登录OS的用户从ora_dba用户组中删除

再来试试:

 
  
  1. SQL> conn / as sysdba;  
  2. ERROR:  
  3. ORA-01031: insufficient privileges 
  4. SQL> 

这次就提示没有权限了。