最近测试服务器迁移,需要重新搭建IBM 的ldap,一位同事按照祖传的文档搭建完成,但不知道什么原因只能查询不能修改,
经过一系列排查,终于解决了这个问题,留个文档用来记录。
一开始怀疑是建的用户不是管理员权限,安装了IDSWebserver后查看权限是dba权限,重新搭建后还是只能查询,不能修改,然后一通排查,未找到原因,偶然发现ldif文件可以用记事本打开,里面有个貌似是权限的数据,导入之后还是不能修改,之后就朝着这个方向排查。因为之前发现导入的数据,使用了一个replicationContext的objectclass,搜索这个,貌似是子服务的复制策略是不能修改的,然后我新增了一个条目,发现里面的数据可以改,我想到把数据导出来,对比了一下两个目录有什么不同
发现里面多了段
dn: IBM-REPLICAGROUP=DEFAULT,CN=IBMPOLICIES
control: 1.3.18.0.2.10.19 false:: MIQAAADbMIQAAAApCgEAMIQAAAAgBAxjcmVhdG9yc05hbWUxhAAAAAwECkNOPUFOWUJPRFkwhA
AAADgKAQAwhAAAAC8ED2NyZWF0ZVRpbWVzdGFtcDGEAAAAGAQWMjAxODA0MjAwNjIyNTkuODY4Nj
E1WjCEAAAAKgoBADCEAAAAIQQNbW9kaWZpZXJzTmFtZTGEAAAADAQKQ049QU5ZQk9EWTCEAAAAOA
oBADCEAAAALwQPbW9kaWZ5VGltZXN0YW1wMYQAAAAYBBYyMDE4MDQyMDA2MjI1OS44Njg2MTVa
objectclass: top
objectclass: ibm-replicaGroup
ibm-replicaGroup: default
ibm-entryuuid: 03e064c0-d8af-1037-80b5-8ed79dd652da
aclpropagate: TRUE
ownerpropagate: TRUE
entryowner: access-id:CN=IDSINST
aclentry: group:CN=ANYBODY
然后把我把之前的目录删掉,把新的目录复制进来,再把之前目录下的文档都父级指向这个目录,导入数据,好了。。。
导出语句
/opt/ibm/ldap/V6.2/sbin/db2ldif -I idsinst-o 5555.ldif
导入语句
/opt/ibm/ldap/V6.2/sbin/ldif2db -i /opt/bea/backup/20170325.ldif -I idsinst
推测出现这个问题是因为生产是个主从模式,
数据是从子节点导出的,子节点不能修改数据,或许从主节点导出的就不会出现这个问题,此问题未经验证。