openldap大小限制。不能接收超过500个条目

查询openldap-server时,我收到的条目数不能超过500。

尽管我进行了以下更改:

slapd.conf

    # This is the main slapd configuration file. See slapd.conf(5) for more
    # info on the configuration options.

    #######################################################################
    # Global Directives:       
    .....

     # The maximum number of entries that is returned for a search operation
    sizelimit 10000

ldap.conf

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

SIZELIMIT       10000
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

重新启动机器后,查询以下命令:

ldapsearch -x -h localhost -b "dc=XXX,dc=XXX,dc=XXX"

我收到:

# search result
search: 2
result: 4 Size limit exceeded

# numResponses: 501
# numEntries: 500

我错过了一些必要的更改吗?

最佳答案

可以在服务器端或客户端设置OpenLDAP搜索限制。

1. slapd.conf的数据库部分中的服务器端(旧样式     已弃用配置,但可以使用钢制)或cn = config     (推荐的)

按数据库全局:

slapd.conf

sizelimit <numberOfMaxResult>

cn = config

olcSizeLimit: <numberOfMaxResult>

此参数不是必需的,默认值为500。

每位使用者:

slapd.conf

limits <Who> size=<numberOfMaxResult>

cn = config

olcLimits: <Who> size=<numberOfMaxResult>

在所有情况下

谁可能是:

* : all

anonymous : not connected user

users : all connected users

dn.exact="cn=xxxx,ou=people... : one user

group/groupOfNames/member="cn=managers,ou=groups...: group of users

numberOfMaxResult可能是:

unlimited : unlimited size, it's a very bad idea to use this configuration in production

number (like 300): number of max result records.

如果同时完成了全局限制和每个用户限制大小,则将应用每个用户限制。

2.客户端

在ldap.conf客户端配置文件中:

SIZELIMIT <numberOfMaxResult>

请求参数

ldapsearch -z 10 ... limit result to 10

所有客户端API均应提供此类参数。

如果完成了服务器端和客户端的限制大小,则应用最小的数目。

这是一个简短的摘要,有关此主题的更多信息:

man slapd.conf
man slapd-config

Limits configuration in OpenLDAP Administrator's guide.