今天早上装了两台虚拟机,使用sqlplus /as sysdba 登录的时候出现
ORA-01031:insufficient privileges
输入用户密码依然出现错误
ERROR:
ORA-01031: insufficient privileges
使用sqlplus sys/oracle as sysdba登录检查
检查1、密码文件
SQL> select * from v$pwfile_users
2 ;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
如果为空值,那么手动创建密码文件
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracleentries=5
force=y
注意sid是区分大小写的
2、
SQL> show parameter password
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
总共三个值,exclusive独占模式,shared,none
修改方法
alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
3、检查sqlnet.ora
[oracle@oracle1 admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
3个点都没有问题,为什么还是不能os登录呢?
回想之前的各项操作,发现sqlnet.ora被改动过,NTS的设置在windows是可以直接登录的,但linux和windows恰恰相反,linux设置的值为ALL或者直接将该行注释。
测试:
[oracle@oracle1 admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(ALL)
NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
[oracle@oracle1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Mon Apr 18 19:30:05 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL>
登录成功。
Sqlnet的说明详情请查看oracle官方说明