15.21. 使用 Retro Changelog 插件
Retro Changelog 插件将目录服务器配置为维护与 Directory Server 4.x 中实施的 changelog 兼容的更改日志。
注意
如果您需要为依赖于 Directory Server 4.x 风格的目录客户端维护更改日志,则仅启用 Retro Changelog 插件。
要使用 Retro Changelog 插件,Directory 服务器实例必须配置为单层次副本。
当目录服务器配置为维护重新引入日志时,此更改日志存储在特殊后缀 cn=changelog 下的独立数据库中。
retro changelog 由单个条目级别组成。changelog 中的每个条目都有对象类
changeLogEntry
。有关 changelog 条目中可能的属性列表,请参阅 Red Hat Directory Server 配置、命令行和文件参考中的 Changelog 属性部分。
15.21.1. 启用 Retro Changelog 插件
这部分论述了如何启用 Retro Changelog 插件。
警告
不要在 retro changelog 后端中启用复制。在重新更改日志中启用复制可能会导致:
- 生成大量复制流量,一半是重复的更新。
- 使用与 retro changelog 修剪相关的删除操作创建错误。
- 复制性能不佳,在供应商上没有协调更新。
15.21.1.1. 使用命令行启用 Retro Changelog 插件
使用命令行启用 Retro Changelog 插件:
- 使用
dsconf
工具启用插件:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog enable
- 重启实例:
# dsctl instance_name restart
15.21.1.2. 使用 Web 控制台启用 Retro Changelog 插件
使用 Web 控制台启用 Retro Changelog 插件:
- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”。
- 选择实例。
- 选择菜单。
- 在左侧的列表中选择 Retro Changelog 插件。
- 将状态更改为 On。
- 单击。
- 重启实例。请参阅 第 1.5.2 节 “使用 Web 控制台启动和停止目录服务器实例”。
15.21.2. 修剪 Retro Changelog
如果您降低
nsslapd-changelogmaxage
参数和下一次修剪间隔中设置的记录最长期限,则会在 nsslapd-changelog-trim -interval 中设置,则会自动缩小重新更改日志
的大小。
例如,要将 retro changelog 中记录的最大年龄设置为 2 天:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog set --max-age="2d"
15.21.3. 搜索和修改 Retro Changelog
changelog 支持搜索操作,并针对包含表单过滤器(& ; (changeNumber>=X) (changeNumber<=Y))的搜索 进行了优化。
作为常规规则,请不要对 retro changelog 条目执行添加或修改操作,但可以删除条目来修剪 changelog 的大小。仅修改 retro changelog 条目,以修改默认的访问控制策略。
15.21.4. 重新引入更改日志和访问控制策略
当目录服务器创建重新引入日志时,不会创建访问控制指令(ACI),并且只有 Directory Manager 应用访问控制规则(读取、搜索、比较、写和删除)。
要更改应用到 retro changelog 的默认访问控制策略,请修改
cn=changelog
条目的 aci
属性。例如,如果要向所有授权用户 授予读取、搜索 和比较 权限,请将以下 ACI 添加到 cn=changelog
:
dn: cn=changelog
aci: (targetattr="changeNumber || objectClass")(targetfilter="(objectClass=changelogentry)")
(version 3.0; acl "Enable authenticated users to read the retro changelog"; allow (read, search, compare)
(userdn="ldap:///all");)
警告
修改
ci
属性时,请不要向匿名用户(userdn=anyone
)授予读取权限,因为更改日志条目可以包含敏感信息,如密码。您必须只允许经过身份验证的用户和用户(userdn=all
)访问此信息。