第 3 章 LDAP 搜索过滤器
搜索过滤器选择搜索操作返回的特定条目。您可以在 ldapsearch
命令行工具或 Directory Server web 控制台中使用搜索过滤器。
目录服务器根据属性值对存储来搜索条目,而不是根据这些条目的可分辨名称(DN)中使用的属性。例如,如果条目具有 DN uid=user_name,ou=People,
,则仅在此条目中存在 attribute-value 对 dc=example
,dc=comdc:example
时搜索 dc=example。
使用 ldapsearch
时,您可以在一个文件中定义多个搜索过滤器,每个过滤器在单独的行中。或者,您可以直接在命令行中指定搜索过滤器。
搜索过滤器具有以下基本语法:
(<attribute><operator><value>)
例如,搜索过滤器 (employeeNumber >= 500)
将 employeeNumber
作为属性,&
gt;= 作为 Operator,500
作为值。
带有匹配规则的搜索过滤器具有以下语法:
(<attribute>:<matching_rule>:=<value>)
例如,搜索过滤器 (givenName:caseExactMatch:=Daniel)
具有 givenName
作为属性,caseExact Match
作为匹配规则,Daniel
作为值。
您可以定义将不同属性与布尔值运算符结合使用的过滤器。
3.1. 使用 LDAP 搜索过滤器中的属性
基本搜索查找条目中存在属性或特定值。搜索可以以多种方式查找条目的属性:
检查属性是否存在(下级搜索)。存在搜索使用星号(
*
)返回设置特定属性的每个条目,而不考虑值。例如,
" (manager.4-1.) "
过滤器返回具有manager
属性的每个条目。匹配确切的属性值(例如,搜索质量)。平等搜索查找具有特定值的属性。例如,
" (cn=
过滤器返回包含通用名称(example
) "cn
)设置为示例 的所有条目。当属性具有与语言标签关联的值时,搜索会返回所有值。因此,以下两个属性值都与
" (cn=example) "
过滤器匹配:cn: example cn;lang-fr: example
列表与部分值匹配(子字符串搜索)。例如,
" (sn.4-1.erson) "
搜索过滤器返回以下值:sn: Derson sn: Anderson
有关配置子字符串搜索长度的详情,请参阅 在子字符串索引中更改搜索密钥长度。