Я не могу получить больше 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.