第 4 章 在目录服务器中配置目录数据库


您可以配置数据库、后缀、串联策略、数据库链接和引用。使用虚拟目录树来组织自定义分组或层次结构中的条目。

4.1. 在单独的数据库中存储后缀

您可以通过将实例中的数据划分为多个数据库,在目录服务器中设计分布式数据存储逻辑。您可以使用目录树的后缀作为数据划分的方法。

您可以创建多个目录树,并通过 root 后缀将其存储在单独的数据库中。您还可以将单个目录树划分为分支,并通过子后缀将分支存储在单独的数据库中。

4.1.1. 数据结构中后缀的角色

目录服务器以分级结构呈现数据,称为目录树(DIT)。以下是一个简单的目录树:

图 4.1. 带有单个根后缀的简单目录树

每个目录树都有一个根条目,用于定义该目录树的命名上下文,如 dc=example,dc=com

您可以将目录树的不同部分存储在不同的数据库中,然后在多个服务器间分发这些数据库。

您可以使用后缀来定义数据存储的分布逻辑。后缀将目录树的分支(subtree)与特定数据库相关联。

这样,您可以在服务器的单一实例中拥有多个数据库。您不限于单个数据库。

4.1.2. 根后缀和子后缀

根后缀将整个目录树(DIT)与数据库相关联。root 后缀没有父后缀。

当您要将目录树的分支存储在单独的数据库中时,您可以创建一个子后缀,它将树的分支与分支的不同数据库相关联。子后缀必须附加到父后缀。父后缀可以是根后缀或子后缀,这意味着任何子树的分支可以存储在单独的数据库中。

图 4.2. 在单独的数据库中带有子后缀的目录树

在本例中,ou=people,dc=example,dc=com 子后缀存储在一个数据库中,根后缀下的其余目录树存储在不同的数据库中。

使用子后缀的优点:

  • 您可以在粒度级别上执行数据库维护(导入/导出/索引)。
  • 您可以在单独的磁盘上存储子修复,从而解决磁盘空间问题。

使用子修复的缺点:

  • 在设置过程中,您需要更多的管理操作。
  • 复制需要为每个子后缀单独配置和复制协议。

4.1.3. 几个 root 后缀

您还可以在单个实例中有多个带有不同根后缀的目录树(DIT)。例如,当您想要将部分数据与用户 root 分开时。

图 4.3. 由 root 后缀定义的几个目录树

当客户端搜索 dc=example,dc=com 树时,搜索不会从其他树中返回条目,因为它们对搜索算法没有限制。

然后,您可以选择哪个目录树和命名上下文用于您的实例。

4.1.4. 使用命令行创建根后缀

此流程演示了如何在命令行上创建目录树的根后缀。

流程

  1. 可选:列出已使用的后缀和后端数据库:

    # dsconf <instance_name> backend suffix list
    dc=example,dc=com (userroot)
    Copy to Clipboard Toggle word wrap

    括号中的名称是存储相应后缀数据的后端数据库。在下一步中创建根后缀时,您无法使用现有数据库名称。

  2. 在--suffix 参数中指定根后缀的 DN,并使用 --be-name 参数将其与新数据库关联:

    # dsconf <instance_name> backend create --suffix="dc=example,dc=net" --be-name="example"
    Copy to Clipboard Toggle word wrap

验证

  • 在此流程的第一步中使用 命令列出后缀和数据库。

4.1.5. 使用 Web 控制台创建根后缀

此流程指导您在浏览器中创建目录树的根后缀。

先决条件

  • 在 web 控制台中登录到实例。

流程

  1. Database 下,点配置树下的 Create Suffix 按钮。
  2. 填写 后缀 DN数据库名称
  3. 选择 Create The Top Suffix Entry 并点 Create Suffix

验证

  • 新后缀应出现在后缀的树中。

4.1.6. 更改默认命名上下文

命名上下文是目录树(DIT)的属性,它为该 DIT 中的条目定义根命名空间。当您使用多个根后缀在实例中构建数据时,您的实例有几个 DIT,各自具有不同的命名上下文。

此流程指示您在实例中使用多个 root 后缀时,如何在命令行中更改默认命名上下文。

访问您的实例的客户端可能不知道他们需要使用哪个命名上下文。如果目录服务器没有其他配置给它们知道的命名上下文,则目录服务器会向客户端发出默认命名上下文信号。

您可以在 cn=config 中的 nsslapd-defaultnamingcontext 属性中设置默认命名上下文。目录服务器将此值传播到目录服务器代理服务条目(root DSE),客户端可以匿名查询它。

先决条件

  • 您已创建了根后缀,用于定义实例的默认命名上下文。

流程

  1. 可选:查看当前的默认命名上下文:

    # dsconf <instance_name> config get nsslapd-defaultnamingcontext
    nsslapd-defaultnamingcontext: dc=example,dc=com
    Copy to Clipboard Toggle word wrap
  2. nsslapd-defaultnamingcontext 参数的值替换为所需的命名上下文:

    # dsconf <instance_name> config replace nsslapd-defaultnamingcontext=dc=example,dc=net
    Copy to Clipboard Toggle word wrap

验证

  • 查看当前的默认命名上下文。应该更新该值。

4.1.7. 使用命令行创建子后缀

您可以使用命令行创建目录树的子修复。

先决条件

  • 为 sub-suffix 创建父后缀。

流程

  1. 可选:列出已使用的后缀和后端数据库:

    # dsconf <instance_name> backend suffix list
    dc=example,dc=com (userroot)
    Copy to Clipboard Toggle word wrap

    括号中的名称是存储相应后缀数据的后端数据库。在下一步中创建子后缀时,您无法使用现有数据库名称。

  2. 在--suffix 参数中指定 sub-suffix 的完整 DN,使用 --be-name 参数将其与新数据库关联,并在- -parent-suffix 参数中指定父后缀:

    # dsconf <instance_name> backend create --suffix="ou=People,dc=example,dc=com" --be-name="example" --parent-suffix="dc=example,dc=com" --create-suffix
    Copy to Clipboard Toggle word wrap

    with -create-suffix 参数,命令为子后缀创建配置条目,以及子后缀条目 ou=People,dc=example,dc=com

    --create-suffix 参数支持使用以下 RDN 属性 type: c,cn,dc,o, 和 ou 创建后缀。如果要使用 RDN 创建后缀,如 l,您可以使用 dsconf backend create 命令,而无需使用 --create-suffix 选项,然后使用 LDAP add 操作或从 LDIF 文件导入条目来添加后缀条目。

验证

  • 在此流程的第一步中使用 命令列出后缀和数据库。

4.1.8. 使用 Web 控制台创建子后缀

此流程指导您在浏览器中创建目录树的子后缀。

先决条件

  • 在 web 控制台中登录到实例。
  • 为 sub-suffix 创建父后缀。

流程

  1. Database 下,从是子suffix 的父配置树中选择一个后缀。
  2. Suffix Tasks,然后选择 Create Sub-Suffix
  3. 填写 Sub-Suffix DN,如 ou=People,以及 数据库名称
  4. 选择 Create The Top Suffix Entry 并点 Create Sub-Suffix

验证

  • 新子后缀应当出现在配置树中的后缀中。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat