Назад | Перейти на главную страницу

openldap sizelimit. Не могу получить более 500 записей

Я не могу получить больше 500 записей, когда запрашиваю свой openldap-сервер.

Хотя я внес следующие изменения:

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>

Во всех случаях

ВОЗ может быть :

* : все

anonymous : не подключенный пользователь

users : все подключенные пользователи

dn.exact="cn=xxxx,ou=people... : один пользователь

group/groupOfNames/member="cn=managers,ou=groups...: группа пользователей

numberOfMaxResult может быть:

unlimited : неограниченный размер, очень плохая идея использовать эту конфигурацию в продакшене

number (like 300): максимальное количество записей результатов.

Если заданы как глобальные, так и индивидуальные ограничения на размер, применяется ограничение на пользователя.

2. Клиентская сторона

в файле конфигурации клиента ldap.conf:

SIZELIMIT <numberOfMaxResult>

Параметр запроса

ldapsearch -z 10 ... ограничить результат до 10

Все клиентские API должны предоставлять такой параметр.

Если заданы ограничения как на стороне сервера, так и на стороне клиента, Применяется наименьшее число.

Это короткая резюме, для получения дополнительной информации в этой теме:

man slapd.conf
man slapd-config

Настройка ограничений в руководстве администратора OpenLDAP.