怎么在Oracle中处理DBLINK远程连接提示ORA-01017错误?

风强小哥_2047

风强小哥_2047

2026-09-01

248人浏览

原创

ora-01017本质是认证失败,主因是跨版本dblink连接时未用英文双引号包裹用户名密码,导致oracle自动转大写后与11g+默认大小写敏感的密码哈希不匹配;须强制使用"scott"和"tiger"格式,并确认远程用户有create session权限、密码文件有效且监听器配置正确。

怎么在oracle中处理dblink远程连接提示ora-01017错误?

ORA-01017 错误本质是认证失败,但问题往往不出在密码输错,而是 Oracle 对密码大小写的处理逻辑在跨版本连接时崩了——尤其 10g/11g/12c/19c 混用时,不加双引号几乎必现。

创建 DBLink 时必须对用户名和密码加双引号

Oracle 在存储 DBLink 的凭据时,会把未加引号的标识符自动转为大写。而从 11g 起,默认启用密码大小写敏感(PASSWORD_VERIFY_FUNCTION 和底层哈希机制决定),远程库实际校验的是原始大小写形式的密码。一旦本地建 link 时写 identified by tiger,Oracle 内部存成 TIGER,但远程库只认 tiger,就直接拒绝。

解决方法非常直接:

  • 无论用户名、密码本身是否含大小写字母,只要涉及跨版本(如 10g→11g、11g→19c、12c→19c),一律用双引号包裹:connect to "scott" identified by "tiger"
  • 引号必须是英文双引号 ",不能用中文引号或单引号
  • 如果用户名/密码里本身含特殊字符(如 @、$、空格),加引号更是强制要求,否则语法报错

确认远程用户具备 CREATE SESSION 权限

ORA-01017 有时是“假象”——表面是密码错,实则是远程用户根本没被授权登录。DBLink 连接复用的是远程用户的会话能力,不是本地权限。

需在远程库中执行验证:

Crypto Sniper Oracle
Crypto Sniper Oracle

机构级量化市场预言机,提供订单簿失衡(OBI)、VWAP分析、自动化报告及Telegram预警。

下载
  • 用相同账号密码直连远程库:sqlplus "scott/tiger@remote_tns",若失败,先解决这个
  • 检查远程用户是否拥有 CREATE SESSION:SELECT privilege FROM dba_sys_privs WHERE grantee = 'SCOTT' AND privilege = 'CREATE SESSION';
  • 没有就补授:GRANT CREATE SESSION TO scott;
  • 注意:仅 CONNECT 角色在较新版本中可能不隐含 CREATE SESSION,显式授予更稳妥

注意监听器与网络层是否真正放行

ORA-01017 也可能由更底层的拦截导致——比如监听器只绑定了 localhost,或防火墙丢弃了连接请求,此时 Oracle 会伪造一个“密码错误”的响应来避免暴露服务状态。

快速排查点:

  • 查远程库的 listener.ora,确认 HOST 值不是 localhost 或 127.0.0.1,应为真实 IP 或 0.0.0.0
  • 远程执行 lsnrctl status,看 Listening Endpoints Summary 中是否列出你的客户端 IP + 端口(如 (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))
  • Linux 上检查防火墙:firewall-cmd --list-ports | grep 1521;Windows 上确认 TCP 1521 在“专用网络”配置文件中已放行
  • 用 tnsping remote_tns 测试 TNS 解析和基础连通性,成功 ≠ 认证成功,但失败一定拦在这里

19c 及以上版本要额外检查数据库角色与只读状态

如果你连的是 19c 物理备库(OPEN_MODE = READ ONLY WITH APPLY),即使用户名密码全对、权限齐全,仍可能报 ORA-01017——因为部分 19c RAC 备库默认禁用密码文件认证(REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE 未启用或密码文件缺失)。

关键检查项:

  • 远程库执行:SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'remote_login_passwordfile';,值必须是 EXCLUSIVE 或 SHARED
  • 确认密码文件存在且包含该用户:orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID entries=10 force=y(必要时重建)
  • 如果用户是通过外部认证(如 OS auth),DBLink 不支持,必须改用密码认证方式
  • 备库上用户密码若近期重置过,需确保同步到了密码文件(ALTER USER scott IDENTIFIED BY tiger; 后,密码文件不会自动更新)

最常被忽略的一点:DBLink 创建后,它的凭据是静态存储的,不随远程用户密码变更自动刷新。哪怕你改了远程库的密码,也必须删掉旧 link、用新密码(带引号!)重建,否则永远卡在 ORA-01017。

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

881

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2433

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2470

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1429

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

2033

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

2629

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4229

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

686

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程