sorting - ldapsearch 排序顺序如何工作?

标签 sorting ldap-query opendj

在 OpenDJ 2.6.0 中,使用 ldapsearch 想要获取排序的数据。 我做了几次尝试,但结果总是排序相同

简单的asc排序

./ldapsearch -b 'ou=people,dc=example,dc=com' -S '+cn' -s sub "objectclass=*" cn
dn: ou=people,dc=example,dc=com

dn: cn=1000000,ou=people,dc=example,dc=com
cn: 1000000

dn: cn=1000000000001,ou=people,dc=example,dc=com
cn: 1000000000001

简单排序说明

./ldapsearch -b 'ou=people,dc=example,dc=com' -S '-cn' -s sub "objectclass=*" cn
dn: ou=people,dc=example,dc=com

dn: cn=1000000,ou=people,dc=example,dc=com
cn: 1000000

dn: cn=1000000000001,ou=people,dc=example,dc=com
cn: 1000000000001

按 OID asc 排序

./ldapsearch -b 'ou=people,dc=example,dc=com' -S '+cn:2.5.13.15' -s sub "objectclass=*"
dn: ou=people,dc=example,dc=com

dn: cn=1000000,ou=people,dc=example,dc=com
cn: 1000000

dn: cn=1000000000001,ou=people,dc=example,dc=com
cn: 1000000000001

使用 OID desc 排序

./ldapsearch -b 'ou=people,dc=example,dc=com' -S '-cn:2.5.13.15' -s sub "objectclass=*"
dn: ou=people,dc=example,dc=com

dn: cn=1000000,ou=people,dc=example,dc=com
cn: 1000000

dn: cn=1000000000001,ou=people,dc=example,dc=com
cn: 1000000000001

按名称 asc 排序

./ldapsearch -b 'ou=people,dc=example,dc=com' -S '+cn:integerOrderingMatch' -s sub "objectclass=*"  cn
dn: ou=people,dc=example,dc=com

dn: cn=1000000,ou=people,dc=example,dc=com
cn: 1000000

dn: cn=1000000000001,ou=people,dc=example,dc=com
cn: 1000000000001

按名称 desc 排序

./ldapsearch -b 'ou=people,dc=example,dc=com' -S '-cn:integerOrderingMatch' -s sub "objectclass=*"  cn
dn: ou=people,dc=example,dc=com

dn: cn=1000000,ou=people,dc=example,dc=com
cn: 1000000

dn: cn=1000000000001,ou=people,dc=example,dc=com
cn: 1000000000001

我做错了什么还是这个错误 ldapsearch/openDJ? 预先感谢您。

最佳答案

使用 -S 选项时,控件不会标记为关键。 如果服务器认为不允许使用或不合适,它将忽略该控制并继续搜索(如 LDAP RFC 中所述)。我猜这就是你正在尝试的。 忽略控制至少有两个原因。 用户没有使用该控件的权限。在 OpenDJ 中,服务器端控制只能由经过身份验证的用户使用,匿名用户不能使用。 有太多条目需要排序(我认为默认设置为 4000)。

-S 'cn' 和 -S '-cn' 在我的测试 OpenDJ 服务器上按预期工作,有 200 个条目,作为用户或目录管理员进行身份验证。

关于sorting - ldapsearch 排序顺序如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067210/

相关文章:

elasticsearch - 存储用户资料

java - 为什么在 Sort() 之后 ArrayList 的开头是 10

Java排序表监听器

php - LDAP/AD 过滤器 - "objectclass not equal to"不工作

java - 用于获取 dn 和所有 cn 数据的 LDAP 查询

c# - 解释 ldap 字符串 "LDAP://DC=amrs,DC=win,DC=ml,dc=COM"的部分

c - 哈希表 - 使用 qsort 排序结构

Python:如何按字母顺序对字符串中的字母进行排序,以区分大小写

openam - 有没有人在没有使用 ForgeRock 的支持计划的情况下使用 OpenAM/OpenDJ/OpenIDM 套件?

java - 如何在 LDAP 中将域名转换为可分辨名称 (DN)?