Oracle. All rights reserved.
ERROR:
ORA-01031: 权限不足
请输入用户名: sys as sysdba
输入口令: --此处输入正确的密码“oracle”
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> --断开连接,把(NONE)改为(NTS)直接连接
SQL> disc
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
SQL> conn abc/123 as sysdba
ERROR:
ORA-01031: 权限不足
由于没有退出SQLPLUS,刚才改的(NTS)还未生效,可见sqlnet.ora文件是在进入SQLPLUS时才去读取的
--仍然保持(NTS),退出SQLPLUS后重新登陆
SQL> exit
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 8月 28 21:54:52 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
现在又是操作系统验证了
注意,如果改成(NONE)以后,当使用RMAN时,system用户就不能操作了,输入正确的密码也不行,只有sys用户并输入密码才可以,测试如下:
--设置为(NTS)的时候登陆RMAN
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 8月 28 22:02:07 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL10G (DBID=1041171248)
RMAN> exit
恢复管理器完成。
C:\Documents and Settings\Administrator>rman target system/oracle
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 8月 28 22:02:33 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL10G (DBID=1041171248)
RMAN> exit
恢复管理器完成。
--修改为(NONE)后,再用密码登陆一次RMAN
C:\Documents and Settings\Administrator>rman target system/oracle --注意,这里密码是正确的
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 8月 28 22:03:06 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-04005: 目标数据库中存在错误:
ORA-01031: 权限不足
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 8月 28 22:08:47 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-04005: 目标数据库中存在错误:
ORA-01031: 权限不足
C:\Documents and Settings\Administrator>rman target sys/oracle
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 8月 28 22:03:16 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL10G (DBID=1041171248)
RMAN>
很显然,在采用数据库身份验证以后,system用户被禁止使用RMAN了,只有拥有数据库最高权限的sys用户,才能登陆RMAN,而且必须是输入密码的方式登陆
总结:
在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS才能使用OS认证,不设置(如,把该行语句加#注释符号)或者设置为其他任何值都不能使用OS认证。
主要是以下几种情况:
1. sqlnet.ora文件为空,或用#注释掉 --基于Oracle密码文件验证
2. SQLNET.AUTHENTICATION_SERVICES = (NTS) --基于操作系统验证
3. SQLNET.AUTHENTICATION_SERVICES = (NONE) --基于Oracle密码文件验证
4. SQLNET.AUTHENTICATION_SERVICES = (NONE,NTS) --基于操作系统验证(前后顺序颠倒也一样)
注意:默认情况下,Unix/
Linux下的sqlnet.ora文件是没有SQLNET.AUTHENTICATION_SERVICES参数的,似乎连sqlnet.ora这个文件也没有,这和
windows有很大的不同
此时是操作系统验证和Oracle密码验证并存,如果加上SQLNET.A |