You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无钱包情况下OCI创建Oracle数据库链接遇ORA-28864问题求助

Oracle数据库链接问题解答

无钱包能否正常使用数据库链接?

取决于目标Oracle数据库的SSL配置规则:

  • 若目标库强制要求双向SSL连接(需要客户端提供证书验证),则必须使用钱包才能建立有效连接,无钱包无法正常使用该数据库链接。
  • 若目标库仅启用单向SSL(只验证服务器证书,不需要客户端证书),或未启用SSL,则无需钱包也可连接,但需在链接配置中正确指定对应SSL参数(单向SSL场景)。

你遇到的ORA-28864错误,核心原因是目标库要求SSL连接,但本地数据库的OCI环境未配置正确的SSL参数或钱包,导致服务器主动关闭了SSL连接。

关于ORA-013031权限不足问题

即便使用管理员账号,直接执行CREATE DATABASE LINK仍报错权限不足,可能的原因包括:

  • 管理员账号未被显式授予CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK权限(比如在CDB/PDB架构中,PDB管理员的权限范围受限于容器配置)。
  • 若本地数据库是Oracle自治数据库(Autonomous Database),这类环境默认禁用直接使用CREATE DATABASE LINK语句,必须通过DBMS_CLOUD_ADMIN包创建链接。

DBMS_CLOUD_ADMIN创建链接后查询报错ORA-28864的排查方向

使用DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK创建链接成功但查询失败,说明链接的基础配置有效,但SSL连接未正确建立,可从以下方向排查:

  1. 确认目标库SSL配置:联系目标库管理员,明确是否启用SSL、是单向还是双向SSL,以及是否需要客户端提供证书(钱包)。
  2. 单向SSL场景处理:
    • 创建链接时指定ssl_server_cert_dn参数为目标服务器证书的DN;
    • 若无需验证服务器证书,可尝试设置ssl_server_cert_dn => '*',或在连接描述符中添加(SECURITY=(SSL_SERVER_CERT_DN='*'))。
  3. 双向SSL场景处理:
    • 必须配置本地钱包,将客户端证书、密钥及根证书导入钱包;
    • 创建链接时通过directory_name参数指定钱包所在目录,并配置对应SSL参数。
  4. 检查连接描述符的SSL参数:若手动构造连接字符串,需确保包含SSL相关配置,示例如下:
    '(DESCRIPTION=
      (ADDRESS=(PROTOCOL=TCPS)(HOST=host)(PORT=port))
      (CONNECT_DATA=(SERVICE_NAME=service))
      (SECURITY=(SSL_SERVER_CERT_DN="目标证书的DN信息"))
    )'
    

内容的提问来源于stack exchange,提问作者Jean Simas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 00:05:12