Hi!
I am experiencing troubles when trying to add an additional value to the olcDbConfig attribute (openldap-2.4.16):
$ ldapmodify -xvW -h bach-s49 -D cn=Manager,cn=config <<EOF
dn: olcDatabase={1}bdb,cn=config changetype: modify add: olcDbConfig olcDbConfig: {19}# urxn
EOF
ldap_initialize( ldap://bach-s49 ) Enter LDAP Password: add olcDbConfig: {19}# urxn modifying entry "olcDatabase={1}bdb,cn=config" ldap_modify: Inappropriate matching (18) additional info: modify/add: olcDbConfig: no equality matching rule
replacing all attribute values with "changetype: modify" and "replace: olcDbConfig" works fine but unfortunately Apache DirectoryStudio doesn't seem to offer that way of committing changes...
That's the prescribed way to modify values of multi-valued attrs without equality matching rules in LDAP. So it appears a limitation of the DUA you're using rather than an OpenLDAP issue.
As per the reason olcDbConfig has no equality matching rule, I recall it was by design, because that attribute is supposed to present in human-readable form the contents of Oracle DB's DB_CONFIG, without mucking with its contents. OpenLDAP already provides a means to muck with the ordering of its contents, it's the X-ORDERING 'VALUES' private extension.
Unfortunately the attribute definition of olcDbConfig seems to be hardcoded, so is there any way to make the above modification work?
You can hard-code your modification, if you wish. If you don't want to modify baseline code permanently, you can write a run-time module that looks up that attribute's definition and modifies it at startup.
p.