OEM以及Oracle客户端中sys无法以sysdba登录解决案例


今早,公司某平台进行性能测试,出现了数据库连接用光,需要进行数据库访问瓶颈问题分析,在数据库服务器上顺利安装好了OEM,在window客户端进行OEM登录时候,通过sys帐号以sysdba角色权限登录,提示用户名或密码错误,直接到服务器上以conn sys/****** as sysdba连接成功,而另外一台服务器在客户单OEM通过sys以sysdba角色登录成功,通过分析确定,不能登录的那台服务器配置或者数据库方面的配置肯定存在问题,因为OEM是通过浏览器访问,本身客户端不需要设置的,下面是解决步骤思路:

Oracle的用户信息一般来说是保存在数据字典里的,所以常规用户在Oracle数据库没有启动的时候是无法登陆的。但有两类用户例外,这就是具有sysdba或者sysoper权限的用户。Oracle sysdba或者sysoper用户的登陆有两种方式:一是通过OS认证,二是通过密码文件验证。

究竟使用哪一种验证方式以及能否成功登陆取决于三个方面的因素:

1. sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES的设置

2. 参数文件中REMOTE_LOGIN_PASSWORDFILE的设置

3. 密码文件orapwd_$ORACLE_SID

Oracle进行权限验证的大致顺序如下:

1. 根据SQLNET.AUTHENTICATION_SERVICES的值决定是进行os验证还是密码文件验证。

2. 如果是os验证,根据当前用户的用户组判断是否具有sysdba权限。如果os验证失败,则进行密码文件验证。

2. 如果是密码文件验证,REMOTE_LOGIN_PASSWORDFILE的值以及密码文件是否存在决定了验证是否成功。

1. OS 验 证

要启用os验证,就必须在sqlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES=(NTS),然后在Windows中建立ora_dba用户组,把相关用户加入到这个组中(e.g., administrator),这样administrator就可以在不用提供用户名和密码(或者提供任意的用户名和密码)的情况下以sysdba身份本地登陆。因为操作系统已经代替Oracle进行了验证。

测试一:服务器端登录

  1. $ sqlplus / as sysdba
  2. Connected to:  
  3. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production  
  4. With the OLAP and Data Mining options  
  5. SQL>  
  6.   
  7. SQL> sqlplus sys/change_on_install as sysdba  
  8. Connected to:  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production  
  10. With the OLAP and Data Mining options  
  11. SQL>  
  • 1
  • 2
  • 3
  • 下一页

相关内容