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

OpenLDAP匿名绑定已开启仍报err=53,Oracle tnsping解析失败求助

Oracle LDAP解析TNS条目报错TNS-03505排查解决

在Ubuntu LTS的树莓派4B上通过Docker部署OpenLDAP存储Oracle TNS条目,Oracle OEL 7.9虚拟机配置完ldap.ora和sqlnet.ora后,执行tnsping返回TNS-03505: 无法解析名称错误。OpenLDAP日志显示搜索操作返回err=53 text=authentication required,已尝试开放权限但问题依旧。


当前环境与配置

OpenLDAP权限配置

执行命令 ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" "(olcAccess=*)" 返回结果:

olcAccess: {0}to * by * write

TNS条目LDAP数据

objectClass: top
objectClass: orclNetService
cn: P00CDB19
orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.12)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=P00CDB19)))

OpenLDAP关键日志

67e4ce8c.20163760 0xffff7100f160 conn=1010 fd=14 ACCEPT from IP=192.168.1.9:54260 (IP=0.0.0.0:1389)
67e4ce8c.20bea59f 0xffff71a0f160 conn=1010 op=0 BIND dn="" method=128
67e4ce8c.20c73411 0xffff71a0f160 conn=1010 op=0 RESULT tag=97 err=0 qtime=0.000066 etime=0.000638 text=
67e4ce8c.20edca04 0xffff7100f160 conn=1010 op=1 SRCH base="cn=p00cdb19,cn=OracleContext,dc=<domain_name>,dc=<domain_name>" scope=0 deref=2 filter="(objectClass=*)" 
67e4ce8c.20f3083c 0xffff7100f160 conn=1010 op=1 SRCH attr=objectclass orclNetDescString orclNetDescName orclVersion
67e4ce8c.20fb9529 0xffff7100f160 conn=1010 op=1 SEARCH RESULT tag=101 err=53 qtime=0.000076 etime=0.001111 nentries=0 text=authentication required
67e4ce8c.211d9bbb 0xffff71a0f160 conn=1010 op=2 UNBIND
67e4ce8c.2128aaf0 0xffff71a0f160 conn=1010 fd=14 closed

问题分析

从日志可明确:客户端(OEL7.9)以匿名绑定成功连接OpenLDAP,但搜索TNS条目时被拒绝,核心原因是匿名用户无对应分支的搜索权限。当前全局ACL配置看似开放,但存在以下可能的问题:

  1. ACL规则优先级:若存在其他未显示的ACL规则,可能覆盖了当前to * by * write的全局规则
  2. 分支权限未明确:部分OpenLDAP版本默认限制匿名用户的分支搜索权限,需针对OracleContext分支单独授权
  3. DN大小写匹配:搜索的base DN为小写cn=p00cdb19,但LDAP条目为大写P00CDB19,部分配置下可能触发匹配失败

解决方案

1. 配置OracleContext分支的匿名访问权限

创建LDIF文件(例如acl_modify.ldif),添加针对OracleContext分支的匿名读权限:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {1}to dn.subtree="cn=OracleContext,dc=<domain_name>,dc=<domain_name>"
  by anonymous read
  by * write

执行命令应用配置:

ldapmodify -Y EXTERNAL -H ldapi:/// -f acl_modify.ldif

2. 验证匿名搜索权限

在OEL7.9虚拟机上执行ldapsearch测试匿名访问:

ldapsearch -x -H ldap://<your-openldap-ip>:1389 -b "cn=P00CDB19,cn=OracleContext,dc=<domain_name>,dc=<domain_name>"

若能正常返回TNS条目信息,说明权限配置生效。

3. 修正Oracle客户端LDAP配置

在sqlnet.ora中添加强制匿名绑定的配置:

NAMES.DIRECTORY_PATH= (LDAP)
NAMES.LDAP_AUTHENTICATE_BIND=OFF

同时确认ldap.ora中的base DN与LDAP条目保持一致(或利用LDAP大小写不敏感特性,统一为大写/小写)。

4. 检查OpenLDAP匿名绑定限制

执行命令检查是否禁用了匿名绑定:

ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" "(olcDisallows=*)"

若返回olcDisallows: bind_anon,需移除该限制:

dn: cn=config
changetype: modify
delete: olcDisallows
olcDisallows: bind_anon

应用配置后重启OpenLDAP容器。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:55:17