在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值进行修改查看其影响。
l
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>
l
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