连接Oracle遇到 ORA-01017和ORA-12560的一种解决方法

写在前面:ORA-01017和ORA-12560造成这种问题的可能性非常多。这里主要提供我的问题和解决的过程。
如果需要看我遇到的问题原因和解决方法,直接看最后

现象:

在这里插入图片描述
以system登录sysdba权限,先是提示账户密码错误,重复输入后提示协议适配器错误。

解决过程

查看相关配置文件

防火墙与网络通信

防火墙推荐打开特定接口,因为是虚拟机,我直接关掉了。
在这里插入图片描述
配置了trade为本机ip,下面的配置文件都是以"trade"代替了"localhost"
在这里插入图片描述
直接ping oracle安装的数据库,接通了
在这里插入图片描述

Listener配置

Oracle外部连接需要一个监听程序进行监听,Listener的配置非常重要
一定要使用netca进行配置。配置过程不在本文讨论范围内。
查看listener.ora查看Listener的配置:
在这里插入图片描述
需要注意的是,SID_LIST_LISTENER是我为了方便加的静态,你不一定有,没有不一定故障。如图,使用TCP通信,HOST就是本机IP,端口使用了1522。SID使用了trade作为实例名。

使用lsnrctl 启动listener监听

lsnrctl start

在这里插入图片描述
注意查看,一定要有instance实例,没有就会出问题。tcp,host,port的如上面listener.ora配置一致。

到这里其实应该可以用sqlplus登录了。但是还是有点儿问题

SqlNet配置

sqlnet的配置,主要是为了解决客户端和Oracle版本不匹配的问题。
比方我说个人在个人PC下安装的是Oracle 11G的客户端,但是在Oracle端安装的是Oracle 19C。直接连接也会出错。如果你的客户端和Oracle版本一致不用管。
在这里插入图片描述
解决了配置问题

SQLNET.ALLOWEDLOGON_VERSION_SERVER=8
SQLNET.ALLOWEDLOGON_VERSION_CLIENT=8

柳暗花明

其实到这里完成正常,把人整不会了。
但是,但是我把as sysdba一删掉就成功登录了。直接定位权限问题。

问题和解决

修改了user的密码,导致权限被收回。
解决方法,在SYS下使用grant 命令重新赋予相关用户sysdba权限。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle 12c是一种强大的数据库管理系统,它可以让用户轻松地管理和维护数据库。然而,有时候会出现ORA-01017错误,提示“用户名/口令无效; 登录被拒绝”。 这个错误通常是由于登录信息(用户名和口令)无效导致的。这可能是因为输入的用户名或口令不正确,或者由于数据库管理员更改了登录凭据而导致登录失败。解决这个问题的方法是正确输入用户名和口令,或者联系数据库管理员以获取正确的凭据。 此外,还有一些其他可能导致ORA-01017错误的原因。例如,数据库可以配置为只允许连接来自某些IP地址或主机名的客户端。如果您没有在连接字符串中正确指定这些参数,则可能无法连接数据库并出现此错误。解决办法是检查连接字符串并指定正确的参数。 总之,ORA-01017错误可能是由多种原因导致的,但通常可以通过检查登录凭据和连接字符串来解决问题。如果您无法解决问题,请联系数据库管理员以获取帮助。 ### 回答2: ORA-01017Oracle数据库发生登录错误时的错误代码,错误信息为用户名/口令无效,登录被拒绝。通常,这种错误是由以下情况引起的。 首先,可能是由于输入的用户名和密码不正确,导致登录失败。在此情况下,应该仔细检查输入的用户名和密码是否正确,对大小写敏感,确保输入正确。 其次,可能是Oracle数据库中没有该用户的登录权限,或者没有分配合适的角色和权限。在这种情况下,应该检查该用户是否被授权访问数据库,并确保正确的角色和权限分配。 最后,这种错误可能是因为数据库配置问题,比如说数据库实例或服务没有启动。在这种情况下,应该检查数据库是否正常运行,确保数据库实例或服务已经正确启动。 综上所述,ORA-01017错误通常是由于输入错误的用户名和密码、没有登录权限或数据库未正常运行等问题引起的。对于这种错误,我们需要检查输入的用户名和密码是否正确、该用户是否被授权访问数据库数据库是否正常运行等,以确定解决方法。 ### 回答3: “oracle 12c ora-01017: 用户名/口令无效; 登录被拒绝。”这个错误提示意味着用户输入的账号或者密码不正确,导致登录被拒绝。当出现这种错误时,需要首先检查输入的用户名和口令是否匹配,并且注意大小写是否正确。 在检查账号和密码之后,还需要确保数据库实例已经启动,并且监听器也已经启动。如果数据库实例或者监听程序未启动,会出现无法连接数据库的情况。因此,需要确保相应的服务都已经启动。 此外,如果用户尝试连接到一个不存在的数据库或者使用错误的连接字符串,也有可能导致登录被拒绝。需要检查连接字符串是否正确,并且确保数据库实例名称和监听器名称也正确。 如果以上步骤都已经检查过,并且仍然无法登录,那么可能是由于权限问题或者安全策略导致的。需要检查用户是否具有正确的权限,并且确保数据库的安全策略不会阻止该用户的登录。 总之,当出现“oracle 12c ora-01017: 用户名/口令无效; 登录被拒绝”错误提示时,需要逐步排查以上问题,以确定错误原因并解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值