Linux下,“ORA-01031: insufficient privileges”的处理

在linux下面,习惯用 sqlplus "/as sysdba" 登录。

今天在其他机器上,遇到错误如下:

[oracle@db ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun 24 01:59:24 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ERROR:
ORA-01031: insufficient privileges


Enter user-name: ^C
[oracle@db ~]$

 

网上找了一下,不少介绍,但是有效的不多。

主要是$ORACLE_HOME/network/admin/sqlnet.ora,要么删掉这个文件,要么把其中的参数 “SQLNET.AUTHENTICATION_SERVICES” 改成 ALL。

单纯的注释掉这个参数,不起作用。

 

现在用的如下:

[oracle@db admin]$ cat sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.AUTHENTICATION_SERVICES= (ALL)
REMOTE_LOGIN_PASSWORDFILE=exclusive
SQLNET.INBOUND_CONNECT_TIMEOUT=0
NAMES.DIRECTORY_PATH= (TNSNAMES)

[oracle@db admin]$

 

参考了下面的URL:

http://hunt1574.blog.51cto.com/1390776/857841

 

理解SQLNET.AUTHENTICATION_SERVICES参数

理解SQLNET.AUTHENTICATION_SERVICES参数

1、官方说明:
SQLNET.AUTHENTICATION_SERVICES
Purpose
Use the parameter SQLNET.AUTHENTICATION_SERVICES to enable one or more authentication services. If authentication has been installed, it is recommended that this parameter be set to either none or to one of the authentication methods.
Default
None
Values
Authentication Methods Available with Oracle Net Services:
·         none for no authentication methods. A valid username and password can be used to access the database.
·         all for all authentication methods
·         nts for   Windows NT native authentication
 
2、测试:
 可以通过对SQLNET.AUTHENTICATION_SERVICES值进行修改查看其影响。
WINDOWNS:
A. sqlnet.ora文件:
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>dir sqlnet.ora
 驱动器  E 中的卷没有标签。
 卷的序列号是  1CF8-89BB
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 的目录
找不到文件
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>
 
                             E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二  5 8 20:45:35 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: 权限不足
请输入用户名 :
B.    SQLNET.AUTHENTICATION_SERVICES=NONE)
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>dir sqlnet.ora
 驱动器  E 中的卷没有标签。
 卷的序列号是  1CF8-89BB
 E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 的目录
2012-05-08 20:48               266 sqlnet.ora
               1 个文件            266 字节
               0 个目录 1,969,827,840 可用字节
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>type sqlnet.ora
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (NONE)
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二  5 8 20:48:53 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: 权限不足
请输入用户名 :
 
C.    SQLNET.AUTHENTICATION_SERVICES=ALL)
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>type sqlnet.ora
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (ALL)
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二  5 8 20:51:28 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12641: 验证服务无法初始化
请输入用户名 :
 
D.    SQLNET.AUTHENTICATION_SERVICES=NTS)
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>type sqlnet.ora
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
 
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二  5 8 20:53:49 2012
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>
 
LINUX
A. sqlnet.ora文件:
 
bash-3.00$ ls -l sqlnet.ora
sqlnet.ora: 无此文件或目录
 
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 8 21:11:04 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL>
 
 
B.    SQLNET.AUTHENTICATION_SERVICES=NONE)
 
bash-3.00$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NONE)
 
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 8 21:13:00 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
 
C.    SQLNET.AUTHENTICATION_SERVICES=ALL)
 
bash-3.00$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (ALL)
 
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 8 21:13:59 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL>
 
D.    SQLNET.AUTHENTICATION_SERVICES=NTS)
 
bash-3.00$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NTS)
 
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 8 21:15:05 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
 
 
 
 
3、总结:
1)         windows下, SQLNET.AUTHENTICATION_SERVICES必须设置为 NTS才可用,此值仅适用于 WINDOWS
2)         LINUX下, SQLNET.AUTHENTICATION_SERVICES ALL或不设置( sqlnet.ora文件不存在时)均可登录。

本文出自 “HUNT” 博客,请务必保留此出处http://hunt1574.blog.51cto.com/1390776/857841

 

 

 

 

 

你可能感兴趣的:(Linux下,“ORA-01031: insufficient privileges”的处理)