本地没有安装oracle。安装了oracleclient和PL/SQL Developer。来实现对oracle数据库的可视化操作。
在使用在登录PL/SQL无法登录。提示错误:ORA-01017: invalid username/password; logon denied 错误(程序中的用户和密码无法登录,登录被拒)。
找出悲剧原因的历程:
1 看username和password是否正确,经检查后,没有问题。
提示:假设你使用的是IDE开发工具进行连接的数据库,不要忽视空格检查。假设系统用户能够登录,能够登录后查看用户是否存在,password是看不到的:“select username from dba_users;”。
假设用户存在,改动一下password试试:“alter user username identified by password;”。可能是自己password记错了呢,自己都不知道。
2 检查自己在配置oracle时。配置的数据库是否正确。
打开oracle客户端的安装路径。D:\Program Files (x86)\Oracle\odac_client。找到tnsnames.ora,打开后检查写的ip地址是否正确。(我的问题就在这)
client为了远程连接server,必须先和server上的监听进程联络,Oracle通过tnsnames.ora文件里的连接描写叙述符来说明连接信息。
名词解释:
ORCL248:连接描写叙述符
address_list:表示client经由多种协议与一台或多台server连接。
在上面的样例中表示client使用TCP协议与server端连接。
PROTOCOL:使用的协议
HOST :是TCP/IP协议使用的serverIP地址。
PORT :是TCP/IP使用的port地址。
CONNECT_DATA: 连接数据库的连接配置
SERVER=DEDICATED: 表示用专用server连接oracle数据库
SERVICE_NAME:server服务名称
3 检查用户是否被锁
假设用户被锁也会出现上面的问题,首先是系统能够进入系统的情况下,解决方法:
用系统用户登录plsql , 查询当前的全部用户: select * from dba_users; 查看状态是否被锁(LOCKED ),假设你数据库连接的用户被锁,给帐号解锁
alter user user1 account unlock;
4 是否给用户分配了权限,能够以系统用户登录后。为用户授权:
grant create session, create table,create view,unlimited,connect,resource;详细些那些权限,依据用户的实际权限进行。
5 网上也有说配置环境变量,我的没有问题,当我把全部的关于oracle的环境变量都删了之后也没有出现不能登录的问题,哎仅仅能是作为一种尝试的方法了。
总结:
最后的最后问题最终攻克了,自己在查找的过程中也走过非常多弯路。可是,弯路至少证明了这条路走不通。蓦然回首。那answer已在眼前。
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5201240.html,如需转载请自行联系原作者