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

使用node-oracledb通过TCPS连接ExaCC数据库遇ORA-28759错误求助

解决ExaCC Oracle数据库TCPS连接问题(node-oracledb + Protractor)

1. 排查文件路径与权限问题

ORA-28759错误核心是无法读取指定的信任库文件,先解决基础问题:

  • 使用绝对路径指定trustStore,避免Protractor运行时工作目录变化导致路径失效,示例:
    trustStore: '/opt/protractor-tests/cacerts' // Linux/macOS环境
    // 或Windows环境注意转义反斜杠
    trustStore: 'C:\\protractor-tests\\cacerts'
    
  • 验证文件权限:确保运行Protractor的用户/进程对cacerts文件有读取权限。Linux/macOS可执行chmod 644 /path/to/cacerts,Windows需在文件属性中放开读取权限。
  • 手动访问路径,确认文件确实存在,无拼写错误(如大小写、后缀名)。

2. 修正node-oracledb连接配置

针对ExaCC的TCPS连接,需调整以下配置细节:

规范连接字符串格式

确保connectString为标准TCPS格式,包含协议、主机、端口和服务名:

connectString: '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=exacc-host.example.com)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=your-service-name)))'

若使用Easy Connect字符串,格式应为:exacc-host.example.com:1522/your-service-name?tcps=1

优化SSL参数配置

针对JKS格式的cacerts信任库,需注意:

  • 确认cacerts文件已导入ExaCC数据库的根证书/中间证书(未导入需用keytool工具执行导入操作)。
  • 若ExaCC服务器证书的DN与主机名不完全匹配,可临时添加sslVerifyServerCertificate: false测试(生产环境不建议,需确保证书导入正确):
const oracledb = require('oracledb');

const connectionConfig = {
  user: 'my_username',
  password: 'my_password',
  connectString: '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=exacc-host.example.com)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=your-service-name)))',
  externalAuth: false, 
  ssl: {
    trustStore: '/绝对路径/to/cacerts',
    trustStorePassword: 'my_password_to_cacerts',
    // 可选:仅用于测试验证,生产环境需移除
    sslVerifyServerCertificate: false
  }
};

3. 额外排查点

  • 检查node-oracledb版本:使用最新稳定版(如6.x及以上),旧版本可能存在SSL配置兼容问题。
  • 验证证书有效性:执行keytool -list -keystore /path/to/cacerts -storepass your-password查看证书列表,确认包含ExaCC数据库的证书条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:25:06