5.6. 为参考完整性配置范围
如果删除了条目,则会删除或修改对其的引用以反映更改。当这个更新适用于所有条目和所有组时,它可能会影响性能,并防止对所选子树限制引用完整性的灵活性。定义 范围 可以解决这个问题。
例如,可能有一个后缀
dc=example,dc=com
,包含两个子树: ou=active users,dc=example,dc=com
和 ou=deleted users,dc=example,dc=com
。对于参考完整性,不应处理 已删除用户
中的条目。
5.6.1. 控制引用完整性范围的参数
以下三个参数可用于定义 参考完整性后插件配置中的 范围:
nsslapd-pluginEntryScope
- 此多值参数控制已删除或重命名的条目的范围。它定义了 参考完整性后 插件查找用户条目删除或重命名操作的子树。如果用户被删除或重命名在定义的子树下不存在,则插件会忽略该操作。参数允许您指定插件应应用该操作的数据库分支。
nsslapd-pluginExcludeEntryScope
- 这个参数还控制已删除或重命名的条目的范围。它定义了 参考完整性后插件会 忽略任何删除或重命名用户的操作的子树。
nsslapd-pluginContainerScope
- 此参数控制更新引用的组范围。删除用户后,参考完整性后 插件会查找用户所属的组并相应地更新它们。参数指定插件搜索用户所属的组的分支。参考完整性后 插件仅更新指定容器分支下的组,并保留所有其他组没有更新。
5.6.2. 使用命令行显示参考完整性范围
以下命令显示如何使用命令行显示范围设置:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity show ... nsslapd-pluginEntryScope: DN nsslapd-pluginExcludeEntryScope: DN nsslapd-pluginContainerScope: DN
5.6.3. 使用 Web 控制台显示参考完整性范围
以下流程演示了如何使用 Web 控制台显示范围设置:
- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”。
- 选择实例。
- 打开菜单。
- 选择 参考完整性 插件。
- 有关当前配置的范围,请参阅 Entry Scope、Exclude Entry Scope、和 Container Scope 字段。
5.6.4. 使用命令行配置参考完整性范围
使用命令行配置引用完整性范围:
- 另外,还可显示范围设置。请参阅 第 5.6.2 节 “使用命令行显示参考完整性范围”。
- 以下命令显示如何使用命令行配置单个引用完整性范围设置:
- 要设置可分辨名称(DN):
- 到
nsslapd-pluginEntryScope
参数:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --entry-scope="DN"
- 到
nsslapd-pluginExcludeEntryScope
参数:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --exclude-entry-scope="DN"
- 到
nsslapd-pluginContainerScope
参数:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --container-scope="DN"
- 删除 DN:
- 在
nsslapd-pluginEntryScope
参数中:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --entry-scope=delete
- 在
nsslapd-pluginExcludeEntryScope
参数中:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --exclude-entry-scope=delete
- 在
nsslapd-pluginContainerScope
参数中:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --container-scope=delete
- 重启实例:
# dsctl instance_name restart
5.6.5. 使用 Web 控制台配置参考完整性范围
使用 Web 控制台配置引用完整性范围:
- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”。
- 选择实例。
- 选择菜单。
- 选择 参考完整性 插件。
- 在 Entry Scope、Exclude Entry Scope 和 Container Scope 字段中设置范围。
- 单击。