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

Erlang通过代理用户连接Oracle数据库的方法及报错咨询

Erlang通过代理用户连接Oracle的解决方案

关于jamdb_oracle对代理用户的支持

jamdb_oracle支持通过代理用户连接Oracle数据库,但需要注意连接参数的正确配置方式,以及Oracle端的权限设置。

解决ORA-01017错误的步骤

1. 修正代码中的引号问题

你的代码中使用了中文双引号(“”),而Erlang仅识别英文双引号(""),这会导致参数解析错误,直接引发用户名/密码无效的报错。修正后的代码:

ConnOpts = [
    {host, Host},
    {port, Port},
    {user, "proxy_user[actual_user]"},
    {password, "proxy_password"},
    {service_name, Service}
],

jamdb_oracle:start(ConnOpts)

2. 确认Oracle端的代理权限配置

确保proxy_user已被授予代理actual_user的权限,在Oracle中执行以下SQL语句:

GRANT CONNECT THROUGH proxy_user TO actual_user;

如果未配置此权限,Oracle会直接拒绝代理连接请求,返回ORA-01017。

3. 尝试分开指定代理用户与实际用户

部分Oracle驱动要求将代理用户和实际用户分开配置,而非合并在user字段中。你可以尝试调整连接参数为:

ConnOpts = [
    {host, Host},
    {port, Port},
    {proxy_user, "proxy_user"},
    {user, "actual_user"},
    {password, "proxy_password"},
    {service_name, Service}
],

jamdb_oracle:start(ConnOpts)

4. 验证密码正确性

代理连接使用的是proxy_user的密码,而非actual_user的密码,请确认你传入的proxy_password确实是proxy_user的有效登录密码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:27:38