上一页      目录     索引      文档主页      下一页     
iPlanet Directory Server 5.1 管理员指南



附录 B   查找目录条目


利用任何 LDAP 客户机都可以查找目录中的条目。多数客户机都提供一些搜索界面,用于便捷地搜索目录及检索条目信息。



注意 您或您的管理员在目录中设置的访问控制确定了搜索的结果。普通用户一般“看”不到很多目录内容,而目录管理员拥有访问所有数据(包括配置)的完全访问权限。

有关在目录中设置访问控制的信息,请参阅第 187 页上的“管理访问控制”



本章涉及以下主题:



使用服务器控制台查找条目

使用 iPlanet Directory Server Console 的“目录”选项卡可以浏览目录树的内容及搜索目录中的特定条目。

  1. 确保 Directory Server 处于运行状态。

  2. 启动 iPlanet Directory Server Console。

    有关具体说明,请参阅第 26 页上的“启动 iPlanet Directory Server Console”

  3. 在 iPlanet Directory Server Console 上,选择“目录”选项卡。

    根据进行目录验证时所用的 DN,该选项卡将显示享有查看权的目录内容。您可以浏览目录树的内容,或者右键单击某个条目,然后从弹出菜单中选择“搜索”。

  4. “搜索”对话框提供在目录中查找名称的简单界面。调用该对话框时,它可以从所选目录的节点执行搜索。从目录最高级进行的搜索范围较大,而从较低级的子树进行的搜索速度较快。

    高级搜索可以将搜索精确到某些属性以及它们的值。如果想用自己的 LDAP 过滤字符串进行搜索,还可以使用过滤搜索。

    有关该功能的更多信息,请参阅在线帮助。



    注意 用“搜索”对话框执行的搜索遵循引荐。



  5. 如果要查看或编辑搜索返回的条目,请单击“确定”关闭“搜索”对话框。搜索结果将显示在另外一个窗口,在该窗口中双击任何名称将显示它的完整条目。如果访问控制允许,条目将显示在“编辑”对话框中并且可以对其进行修改。

    否则,单击“取消”关闭“搜索”对话框而不显示更多的搜索结果。



使用 ldapsearch

您可以使用 ldapsearch 命令行实用程序查找和检索目录项。该实用程序将利用指定的特异名称和口令打开到指定服务器的连接,然后根据指定的搜索过滤器查找条目。搜索范围中可以包括单个条目、紧跟条目下一级的子树,或者是整个目录树或子树。

本节提供有关下列主题的信息:


使用特殊字符

使用 ldapsearch 命令行实用程序时,指定的值中可能需要包含对命令行解释程序有特殊含义的字符(例如空格 [ ]、星号 [*]、反斜杠 [\] 等)。指定特殊字符时,应使用引号 ("") 将其括起来。例如:

-D "cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com"

根据使用的命令行解释程序,有时使用单引号,而有时则使用双引号。有关详细信息,请参阅操作系统文档。


ldapsearch 命令行格式

使用 ldapsearch 时,必须输入下列格式的命令:

ldapsearch [optional_options] [optional_search_filter] [optional_list_of_attributes]

其中

  • optional_options 表示一系列命令行选项。如果有,则必须在搜索过滤器之前指定。

  • optional_search_filter 表示“LDAP 搜索过滤器”中所述的 LDAP 搜索过滤器。如果是在文件中利用 -f 选项提供搜索过滤器,则不要指定搜索过滤器。

  • optional_list_of_attributes 表示由空格分隔的属性列表。指定属性列表可以减少搜索结果中返回的属性数。该属性列表必须位于搜索过滤器的后面。有关示例,请参阅“显示属性的子集”。如果不指定属性列表,搜索过程就会返回目录中设置的访问控制所允许的所有属性值(操作属性除外)。



    注意 如果希望操作属性也作为搜索操作的结果而予以返回,则必须在搜索命令中进行明确指定。除了明确指定的操作属性,如果还想检索常规属性,请在 ldapsearch 命令的属性列表中使用星号 (*)。




常用 ldapsearch 选项

下面列出了最常用的 ldapsearch 命令行选项。如果指定的值中包含空格 [ ],则该值应使用双引号括起来(例如 -b "ou=groups, dc=siroe,dc=com")。

-b

指定搜索的起始点。这里指定的值必须为数据库中当前存在的特异名称。如果不指定值,则使用 ""

该选项中指定的值应括到双引号中。例如:

-b "cn=Barbara Jensen, ou=Product Development, dc=siroe,dc=com"

如果希望搜索根 DSE 条目,请在这里指定空字符串。例如:
-b ""

-D

指定进行服务器验证时所用的特异名称。如果服务器支持匿名访问,则该选项将成为可选项。如果指定该选项,则值必须为可被 Directory Server 识别的 DN,且须有搜索该条目的授权。例如:

-D "uid=bjensen, dc=siroe,dc=com"

-h

指定安装 Directory Server 的计算机的主机名和 IP 地址。如果不指定主机,ldapsearch 就会使用 localhost。例如 -h mozilla

-l

指定完成搜索请求前所等待的最长时间(秒)。不管这里指定什么值,ldapsearch 的等待时间都不会超出服务器 nsslapd-timelimit 属性所允许的时间。例如 -l 300nsslapd-timelimit 属性的默认值为 3,600 秒。

-p

指定 Directory Server 所用的 TCP 端口号。例如 -p 1049。默认值为 389。

-s

指定搜索范围。范围可以是下列之一:

  • base — 仅搜索 -b 选项中指定的条目或由 LDAP_BASEDN 环境变量定义的条目。

  • one — 仅搜索 -b 选项中所指定条目的下一级子项。此时将仅搜索子项,而不会搜索 -b 选项中指定的实际条目。

  • sub — 搜索 -b 选项中指定的条目及所有子项。也就是从 -b 选项所标识的点开始进行子树搜索。这是默认设置。

-w

指定与 -D 选项中所指定的特异名称相关联的口令。如果不指定该选项,则使用匿名访问。例如 -w diner892

-z

指定对应于搜索请求所返回的最大条目数。例如 -z 1000

正常情况下,不管这里指定什么值,ldapsearch 所返回的条目数都不会超出服务器 nsslapd-sizelimit 属性所允许的数目。但在使用该命令行变量时,如果绑定为根 DN,即可忽略此限制条件。绑定为根 DN 时,该选项默认为 0。 nsslapd-sizelimit 属性的默认值为 2,000 个条目。


ldapsearch 示例

在下一组示例中,假设下列条件为真:

  • 要搜索目录中的全部条目。

  • 目录已配置为支持匿名搜索和读取访问。执行搜索时,无须指定任何绑定信息。有关匿名访问的详细信息,请参阅第 205 页上的“定义用户访问权 - userdn 关键字”

  • 服务器位于主机名为 mozilla 的主机上。

  • 服务器使用端口号 389。由于这是默认端口,因此不必标识搜索请求上的端口号。

  • 用于存储所有数据的后缀为 dc=siroe,dc=com


返回所有条目

在给定上述信息的情况下,下列调用将返回目录中的所有条目:

ldapsearch -h mozilla -b "dc=siroe,dc=com" -s sub "objectclass=*"

"objectclass=*" 是匹配目录中所有条目的搜索过滤器。


在命令行上指定搜索过滤器

在命令行上可以直接指定搜索过滤器。此时,请务必将过滤器括在引号中(“过滤器”)。 同时,不要指定 -f 选项。例如:

ldapsearch -h mozilla -b "dc=siroe,dc=com" "cn=babs jensen"


搜索根 DSE 条目

根 DSE 是一个特殊的条目,其中包含所有受本地目录服务器支持的后缀列表。搜索该条目时,应提供搜索基 ""。同时,还必须指定搜索范围为 base,过滤器为 "objectclass=*"。例如:

ldapsearch -h mozilla -b "" -s base "objectclass=*"


搜索模式条目

iPlanet Directory Server 将在特定的 cn=schema 条目中存储所有目录服务器模式。该条目中包含有关为目录服务器所定义各对象类和属性的信息。

可以按如下所示检查该条目的内容:

ldapsearch -h mozilla -b "cn=schema" -s base "objectclass=*"


显示属性的子集

ldapsearch 命令可以返回所有 LDIF 格式的搜索结果。默认情况下,ldapsearch 将返回条目的特异名称及所有允许读取的属性(可以对目录的访问控制进行设置,从而允许以只读方式访问任何给定目录项上属性的子集)。只有操作属性不予以返回。如果希望操作属性也作为搜索操作的结果而予以返回,则必须在搜索命令中进行明确指定。

假设您不想看到搜索结果中返回的所有属性。这时可以将返回的属性限定为几个特定属性,方法是在命令行中紧跟在搜索过滤器的后面指定所需的属性。例如,要显示目录中每个条目的 cnsn 属性,请使用下列命令行调用:

ldapsearch -h mozilla -b "dc=siroe,dc=com" "objectclass=*" sn cn


在搜索过滤器中指定包含逗号的 DN

当搜索过滤器中的 DN 值中包含逗号时,必须使用反斜杠 (\) 对逗号进行转义。例如,要查找 siroe.com Bolivia, S.A. 子树中的所有人员,请使用下列命令:

ldapsearch -h mozilla -s base -b "o=siroe.com Bolivia\, S.A.,dc=siroe,dc=com" "objectclass=*"



LDAP 搜索过滤器



搜索过滤器将为搜索操作选择所要返回的条目。它们通常与 ldapsearch 命令行实用程序一起使用。使用 ldapsearch 时,可以将多个搜索过滤器放到一个文件中,每个过滤器占独立的一行,也可以在命令行上直接指定搜索过滤器。

例如,下列过滤器指定搜索通用名 Babs Jensen:

cn=babs jensen

该搜索过滤器将返回所有包含通用名 Babs Jensen 的条目。搜索通用名时并不区分大小写。

如果通用名属性的值与语言标记关联,则返回所有的值。因此,下列两个属性值均匹配该过滤器:

cn: babs jensen

cn;lang-fr: babs jensen

有关支持的语言列表,请参阅第 521 页上的表 D-1


搜索过滤器语法

搜索过滤器的基本语法为:

attribute operator value

例如:

buildingname>=alpha

本例中,buildingname 为属性,>= 为运算符,而 alpha 为属性值。也可将过滤器定义为使用由布尔运算符组合到一起的不同属性。

有关搜索过滤器的详细信息,请参阅以下各节:


在搜索过滤器中使用属性

搜索条目时,可以指定与该条目相关联的属性。例如,搜索人员条目时,可以使用 cn 属性来搜索具有特定通用名的人。

人员条目中可能包含的属性示例:

  • cn(人员的通用名)

  • sn(人员的姓氏)

  • telephoneNumber(人员的电话号码)

  • buildingName(人员的住址)

  • l(可以找到此人的地方)

有关与条目类型关联的属性列表,请参阅 iPlanet Directory Server 模式参考指南


在搜索过滤器中使用运算符

搜索过滤器中可用的运算符列表,请参见表 B-1


表 B-1    搜索过滤器运算符

搜索类型

运算符

说明

等于  

=  

返回所含属性值与指定的值完全匹配的条目。例如 cn=Bob Johnson  

子字符串  

=string* string  

返回所含属性中包含指定子字符串的条目。例如:

cn=Bob*

cn=*Johnson

cn=*John*

cn=B*John

(星号 (*) 指示 0 个或更多字符。)  

大于等于  

>=  

返回所含属性大于或等于指定值的条目。例如:

buildingname >= alpha  

小于等于  

<=  

返回所含属性小于或等于指定值的条目。例如:

buildingname <= alpha  

存在  

=*  

返回包含所指定属性的一个或多个值的条目。例如:

cn=*

telephonenumber=*

manager=*  

近似  

~=  

返回的条目中所含的指定属性的值近似等于搜索过滤器中指定的值。例如:

cn~=suret

l~=san fransico

将返回

cn=sarette

l=san francisco  



注意 除了上述搜索过滤器外,还可以指定特殊的过滤器来与首选语言对照顺序配合使用。有关如何用国际字符集来搜索目录的信息,请参阅“搜索国际化目录”




使用复合搜索过滤器

如下所示,利用前缀记号中的布尔运算符可以将多个搜索过滤器组件组合到一起:

(Boolean-operator(filter)(filter)(filter)...)

其中 Boolean-operator 表 B-2 中所列的任意布尔运算符。

布尔运算符可以组合和嵌套起来,从而构成复杂的表达式,例如:

(Boolean-operator(filter)((Boolean-operator(filter)(filter)))

可用于搜索过滤器的的布尔运算符包括:


表 B-2    搜索过滤器布尔运算符

运算符

符号

说明

AND  

&  

所有指定的过滤器都必须为真时,该语句才为真。例如:

(&(filter)(filter)(filter)...)  

OR  

|  

至少指定的一个过滤器为真时,该语句即为真。例如:

(|(filter)(filter)(filter)...)  

NOT  

 

指定的语句必须非真时,该语句才为真。只有一个过滤器受 NOT 运算符的影响。例如:

(!(filter))  

布尔表达式的评估顺序如下所示:

  • 首先是最内侧的括号表达式,并依次向外

  • 所有表达式都按从左向右的顺序进行


搜索过滤器示例

下列过滤器将搜索包含一个或多个 manager 属性值的条目。这也称为存在搜索:

manager=*

下列过滤器将搜索包含通用名 Ray Kultgen 的条目。这也称为等价搜索:

cn=Ray Kultgen

下列过滤器返回所有不包含通用名 Ray Kultgen 的条目:

(!(cn=Ray Kultgen))

下列过滤器返回的所有条目中都有包含子字符串 X.500 的说明属性:

description=*X.500*

下列过滤器返回所有组织单元为 Marketing 且说明字段中不包含子字符串 X.500 的条目:

(&(ou=Marketing)(!(description=*X.500*)))

下列过滤器返回所有组织单元为 Marketing 且 manager 为 Julie Fulmer 或 Cindy Zwaska 的条目:

(&(ou=Marketing)(|(manager=cn=Julie Fulmer,ou=Marketing,dc=siroe,dc=com)(manager=cn=Cindy Zwaska,ou=Marketing,dc=siroe,dc=com)))

下列过滤器返回所有不代表人员的条目:

(!(objectClass=person))

下列过滤器返回所有不代表人员且通用名近似于 printer3b 的条目:

(&(!(objectClass=person))(cn~=printer3b))



搜索国际化目录



执行搜索操作时,对于服务器具有支持的对照顺序的语言而言,可以请求目录根据该语言对结果进行排序。有关目录所支持的对照顺序的列表,请参阅第 521 页上的“识别受支持的区域设置”

本节主要说明 ldapsearch 语法的匹配规则过滤器部分。有关一般 ldapsearch 语法的详细信息,请参阅“LDAP 搜索过滤器”。有关利用 “用户和组”部分来搜索国际化目录的信息,请参阅在线帮助或通过 iPlanet Console 管理服务器

该部分包含下列主题:


匹配规则过滤器语法

匹配规则可在搜索操作期间为目录进行字符串比较提供特殊的标准。在国际化搜索中,匹配规则将告知系统在搜索过程中使用什么对照顺序和运算符。例如在国际搜索中,匹配规则可能会告知服务器搜索位于西班牙语对照顺序中 llama 或其后面的属性值。匹配规则过滤器的语法如下所示:

attr:matchingRule:=value

其中:

  • attr 是属于所要搜索的条目的属性,例如 cnmail

  • matchingRule 是标识对照顺序或对照顺序与关系运算符的标识符,这与自己所喜欢的格式有关。有关匹配规则格式的说明,请参阅“匹配规则格式”

  • value 是所要搜索的属性值,或者是关系运算符和所要搜索的属性值。过滤器值部分的语法与所用的匹配规则格式有关。


匹配规则格式

搜索过滤器的匹配规则部分可以用几种方式来表示。具体使用哪种方式纯粹是个人喜好问题。表示匹配规则的方式包含:

  • 对于要用作搜索基的区域设置而言,作为对照顺序的 OID。

  • 对于要用作搜索基的对照顺序而言,作为与对照顺序关联的语言标记。

  • 作为代表关系运算符的对照顺序和后缀的 OID。

  • 对于代表关系运算符的对照顺序和后缀而言,作为与之关联的语言标记。

上述各种选项的语法将在以下各节进行讨论:


在匹配规则中使用 OID
目录服务器所支持的各种区域设置都有关联的对照顺序 OID。有关目录服务器所指定的区域设置列表及其相关的 OID,请参阅第 521 页上的表 D-1

如下所示,可以使用匹配规则过滤器中匹配规则部分的对照顺序 OID:

attr:OID:=(relational_operator value)

关系运算符包含在字符串的值部分,与值之间用空格分隔。例如,要搜索按瑞典语对照顺序位于 N4709 或之后的所有 departmentNumber 属性,请使用下列过滤器:

departmentNumber:2.16.840.1.113730.3.3.2.46.1:=>= N4709


在匹配规则中使用语言标记
目录服务器所支持的各种区域设置都有关联的语言标记。有关目录服务器所支持的区域设置及相关的语言标记,请参阅第 521 页上的表 D-1

如下所示,可以在匹配规则过滤器的匹配规则部分使用语言标记:

attr:language-tag:=(relational_operator value)

关系运算符包含在字符串的值部分,与值之间用空格分隔。例如,要利用西班牙语对照顺序搜索目录中所有值为 estudiante 的说明属性,请使用下列过滤器:

cn:es:== estudiante


在匹配规则中使用 OID 和后缀
作为使用关系运算符-值对的替代方案,也可以将代表特定运算符的后缀追加到过滤器匹配规则部分 OID 上。将 OID 和后缀组合如下:

attr:OID+suffix:=value

例如,要按德语对照顺序来搜索值为 softwareproducktebusinessCategory 属性,请使用下列过滤器:

businessCategory:2.16.840.1.113730.3.3.2.7.1.3:=softwareprodukte

上例中的 .3 为等价后缀。

有关目录服务器所指定的区域设置列表及其相关的 OID,请参阅第 521 页上的表 D-1。有关关系运算符及其等价后缀的列表,请参阅表 B-3


在匹配规则中使用语言标记和后缀
作为使用关系运算符-值对的替代方案,也可以将代表特定运算符的后缀追加到过滤器匹配规则部分的语言标记上。将语言标记和后缀组合如下:

attr:language-tag+suffix:=value

例如,要搜索按法语对照顺序位于 La Salle 或之后的所有姓氏,请使用下列过滤器:

sn:fr.4:=La Salle

有关目录服务器所支持的区域设置及相关的语言标记,请参阅第 521 页上的表 D-1。有关关系运算符及其等价后缀的列表,请参阅表 B-3


在匹配规则过滤器中使用通配符

使用匹配规则过滤器执行子字符串搜索时,可以将星号 (*) 字符用作通配符,来代表 0 个或多个字符。

例如,要搜索以字母 l 开头,以字母 n 结尾的属性值,可在搜索过滤器的值部分输入 l*n。与此类似,要搜索所有以字母 u 开头的属性值,请在搜索过滤器的值部分输入值 u*

要搜索包含星号 (*) 字符的值,则必须用指定的转义字符 (\) 对 * 进行转义。例如,要搜索所有属性值 businessCategorySiroe*Net product line 的员工,请在搜索过滤器中输入下列值:

Siroe\*Net product line


支持的搜索类型

Directory Server 执行下列类型的国际搜索:

  • 等于 (=)

  • 子字符串 (*)

  • 大于 (>)

  • 大于等于 (>=)

  • 小于 (<)

  • 小于等于 (<=)

近似(或语音)和存在搜索仅在英语中得到支持。

与常规 ldapsearch 搜索操作类似,国际搜索也使用运算符来定义搜索类型。但调用国际搜索功能时,既可在搜索字符串的值部分使用标准运算符 (=, >=, >, <, <=),也可在过滤器的匹配规则部分使用特殊的运算符,称为后缀(不要与目录后缀混淆)。表 B-3 总结了各类搜索操作、运算符及等价后缀。


表 B-3    搜索类型、运算符及后缀

搜索类型

运算符

后缀

小于  

<  

.1  

小于等于  

<=  

.2  

等于  

=  

.3  

大于等于  

>=  

.4  

大于  

>  

.5  

子字符串  

*  

.6  


国际搜索示例

下列各节给出如何对目录数据执行国际搜索的示例。每个示例都给出了可能的匹配规则过滤器格式,这样可以帮助您熟悉这些格式并选择最适合自己的格式。


小于示例

使用小于运算符 (<) 或后缀 (.1) 执行面向特定区域设置的搜索时,将搜索按特定对照顺序而言位于给定属性之前的所有属性值。

例如,要搜索按西班牙语对照顺序位于姓氏 Marquez 之前的所有姓氏,可以使用下列匹配规则过滤器之一:

sn:2.16.840.1.113730.3.3.2.15.1:=< Marquez
sn:es:=< Marquez
sn:2.16.840.1.113730.3.3.2.15.1.1:=Marquez
sn:es.1:=Marquez


小于等于示例

使用小于等于运算符 (<=) 或后缀 (.2) 执行面向特定区域设置的搜索时,将搜索按特定对照顺序而言位于给定属性处或之前的所有属性值。

例如,要搜索按匈牙利语对照顺序位于房间号 CZ422 或之前的所有房间号,请使用下列匹配规则过滤器之一:

roomNumber:2.16.840.1.113730.3.3.2.23.1:=<= CZ422
roomNumber:hu:=<= CZ422
roomNumber:2.16.840.1.113730.3.3.2.23.1.2:=CZ422
roomNumber:hu.2:=CZ422


等于示例

使用等于运算符 (=) 或后缀 (.3) 执行面向特定区域设置的搜索时,将搜索按特定对照顺序而言匹配给定属性的所有属性值。

例如,要搜索按德语对照顺序而言所有属性值为 softwareproduktebusinessCategory 属性,可以使用下列匹配规则过滤器之一:

businessCategory:2.16.840.1.113730.3.3.2.7.1:== softwareprodukte
businessCategory:de:== softwareprodukte
businessCategory:2.16.840.1.113730.3.3.2.7.1.3:=softwareprodukte
businessCategory:de.3:=softwareprodukte


大于等于示例

使用大于等于运算符 (>=) 或后缀 (.4) 执行面向特定区域设置的搜索时,将搜索按特定对照顺序而言位于给定属性处或之后的所有属性值。

例如,要搜索按法语对照顺序而言所有位于 Québec 或之后的属性,可以使用下列匹配规则过滤器之一:

locality:2.16.840.1.113730.3.3.2.18.1:=>= Québec
locality:fr:=>= Québec
locality:2.16.840.1.113730.3.3.2.18.1.4:=Québec
locality:fr.4:=Québec


大于示例

使用大于运算符 (>) 或后缀 (.5) 执行面向特定区域设置的搜索时,将搜索按特定对照顺序而言位于给定属性之后的所有属性值。

例如,要搜索按捷克斯洛伐克语所有位于主机 schranka4 后面的邮件主机,可以使用下列匹配规则过滤器之一:

mailHost:2.16.840.1.113730.3.3.2.5.1:=> schranka4
mailHost:cs:=> schranka4
mailHost:2.16.840.1.113730.3.3.2.5.1.5:=schranka4
mailHost:cs.5:=schranka4


子字符串示例

执行国际子字符串搜索时,将搜索按特定对照顺序而言匹配给定形式的所有属性值。

例如,要搜索按汉语对照顺序所有以 ming 结尾的用户代号,可以使用下列匹配规则过滤器之一:

uid:2.16.840.1.113730.3.3.2.49.1:=* *ming
uid:zh:=* *ming
uid:2.16.840.1.113730.3.3.2.49.1.6:=* *ming
uid:zh.6:=* *ming


上一页      目录     索引      文档主页      下一页     
版权所有 © 2001 Sun Microsystems, Inc.。部分版权所有 © 2001 Netscape Communications Corp.。保留所有权利。

最近更新时间:2002 年 2 月 15 日