Ldap
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=配置
olcSizeLimit: <numberOfMaxResult>
此參數不是必需的,預設為500。
每個使用者:
slapd.conf
limits <Who> size=<numberOfMaxResult>
cn=配置
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