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

基于BDE的遗留C++应用连接Oracle 19 Enterprise问题排查

Oracle 19c 适配BDE连接的调整设置

针对BDE(Borland Database Engine)遗留应用连接Oracle 19c Enterprise时出现的账户锁定、连接异常问题,可通过以下Oracle端设置调整来兼容:

1. 调整密码验证算法

BDE依赖Oracle旧版密码哈希算法(如10G及更早),而Oracle 19c默认强制使用高安全算法,需为应用用户修改密码验证规则:

-- 取消默认的密码复杂度验证函数(若存在)
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;
-- 重置用户密码并指定兼容旧版哈希的算法(O3对应10G兼容版本)
ALTER USER your_app_user IDENTIFIED BY your_new_password USING 'O3';

2. 修改SQLNET.ORA网络配置

在Oracle服务器的$ORACLE_HOME/network/admin目录下编辑sqlnet.ora,添加/修改以下参数以允许旧版连接协议和认证:

-- 允许客户端/服务器使用10G版本的认证协议
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
-- 禁用强制加密(BDE通常不支持加密连接)
SQLNET.ENCRYPTION_SERVER=ACCEPT
SQLNET.ENCRYPTION_CLIENT=ACCEPT
-- 禁用校验和强制要求
SQLNET.CRYPTO_CHECKSUM_SERVER=ACCEPT

修改后需重启监听服务:lsnrctl restart

3. 调整用户权限与锁定规则

  • 确保应用用户拥有基础连接权限:
GRANT CREATE SESSION TO your_app_user;
GRANT SELECT ON SYS.DUAL TO your_app_user;
-- 根据应用需求补充对应表的读写权限
GRANT SELECT, INSERT, UPDATE, DELETE ON your_app_table TO your_app_user;
  • 放宽登录失败锁定限制,避免因BDE连接重试导致账户快速锁定:
-- 取消登录失败次数限制,或设置较高阈值
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

4. 调整数据库兼容模式(可选)

若上述设置仍无效,可尝试降低数据库兼容版本(注意:此操作会限制Oracle 19c新特性的使用):

ALTER SYSTEM SET COMPATIBLE = '12.2.0' SCOPE=SPFILE;

修改后需重启数据库实例生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:05:08