造成这种现象的原因基本有一下几个方面
1.SID
首先确定一下当前使用的数据库的SID是否正确,set sid=orcl(数据库实例名)
2.环境变量path
用其它用户如system 用户检查能否正常登录,若能登录,则可排除环境变量path,如不能则在path中加入oracle的bin路径
3.用户权限
检查系统用户是否加入到ora_dba组中,若没有,则加入;
在win8.1系统中可能无法找到本地用户和组,这时,我们可使用以下命令将其加入(CMD其中)
net localgroup ora_dba yx /add
其中yx为登录电脑的用户名,ora_dba 为要加入的组
4.sqlnet.ora 认证服务从NONE改为NTS
SQLNET.AUTHENTICATION_SERVICES= (NTS) --windows使用nts、linux使用all
下面是官网对SQLNET.AUTHENTICATION_SERVICES的解释
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 eithernone
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
Authentication Methods Available with Oracle Advanced Security:
-
kerberos5
for Kerberos authentication -
radius
for RADIUS authentication -
dcegssapi
for DCE GSSAPI authentication