追溯更改日志由 LDAP 客户端使用,用于确定目录服务器数据的更改历史记录。追溯更改日志与目录服务器更改日志存储在不同的数据库中,位于 cn=changelog 后缀下。
可以在单独的服务上或复制拓扑中的每个服务器上启用追溯更改日志。在服务器上启用追溯更改日志时,默认情况下将记录该服务器上所有后缀的更新。可以将追溯更改日志配置为只记录指定后缀的更新。
有关在复制拓扑中使用追溯更改日志以及使用追溯更改日志的限制的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Replication and the Retro Change Log Plug-In”。
有关追溯更改日志中的条目属性的信息,请参见 changeLogEntry(5dsoc) 手册页。
有关修改追溯更改日志的详细信息,请参见 dsconf(1M) 手册页。
本部分说明使用追溯更改日志的各种方法。
要使用追溯更改日志,必须先启用该日志。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
修改追溯更改日志配置条目:
$ dsconf set-server-prop -h host -p port retro-cl-enabled:on |
重新启动服务器。
有关信息,请参见启动、停止和重新启动目录服务器实例。
在服务器上启用追溯更改日志时,默认情况下将记录该服务器上所有后缀的更新。此过程介绍如何将追溯更改日志配置为只记录指定后缀的更新。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
修改追溯更改日志配置条目:
$ dsconf set-server-prop -h host -p port retro-cl-suffix-dn:suffix-DN |
例如,如果只记录 cn=Contractors,dc=example,dc=com 后缀和 ou=People,dc=example,dc=com 后缀上的更改,请使用以下命令:
$ dsconf set-server-prop -h host2 -p 1389 \ retro-cl-suffix-dn:"cn=Contractors,dc=example,dc=com" \ retro-cl-suffix-dn:"ou=People,dc=example,dc=com" |
要在现有的指定后缀列表中添加后缀,请使用以下命令:
$ dsconf set-server-prop -h host -p port retro-cl-suffix-dn+:suffix-DN |
重新启动服务器。
有关信息,请参见启动、停止和重新启动目录服务器实例。
此过程介绍如何将追溯更改日志配置为在删除条目时记录该条目的指定属性。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
指定必须记录的属性:
$ dsconf set-server-prop -h host -p port retro-cl-deleted-entry-attr: \ attribute1 attribute2 |
例如,要将追溯更改日志设置为记录已删除条目的 UID 属性,请使用以下命令:
$ dsconf set-server-prop -h host -p port retro-cl-deleted-entry-attr:uid |
要在现有的指定属性列表中添加属性,请使用以下命令:
$ dsconf set-server-prop -h host -p port retro-cl-deleted-entry-attr+:attribute |
重新启动服务器。
有关信息,请参见启动、停止和重新启动目录服务器实例。
在指定的一段时间过后,可以自动删除追溯更改日志中的条目。要配置一段时间,使条目在此时间段后自动删除,请确保已启用追溯更改日志,然后设置 cn=Retro Changelog Plugin, cn=plugins, cn=config 条目中的 nsslapd-changelogmaxage 配置属性。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
检查是否已启用追溯更改日志。
$ dsconf get-server-prop -h host -p port retro-cl-enabled |
如果未启用追溯更改日志,请启用该日志。
$ dsconf set-server-prop -h host -p port retro-cl-enabled:on |
设置已记录的更改的最大存留期。
$ dsconf set-server-prop -h host -p port retro-cl-max-age:duration |
其中 duration 可以是 undefined(无存留期限制)或以下任一选项:
s(秒)
m(分钟)
h(小时)
d(天)
w(周)
例如,要将追溯更改日志的最大存留期设置为两天,请键入:
$ dsconf set-server-prop -h host 2 -p 1389 retro-cl-max-age:2d |
每 5 分钟从更改日志中删除超过此期限的条目。
追溯更改日志支持搜索操作。它针对特定搜索(包含以下格式的过滤器)进行了优化:
(&(changeNumber>=X)(changeNumber<=Y)) |
作为一般规则,请勿对追溯更改日志条目执行添加或修改操作。可以删除条目以修整日志大小。只有在修改默认访问控制策略时,才需要对追溯更改日志执行修改操作。
为所有经过验证的用户(userdn=anyone,不要与 userdn=all 的匿名访问相混淆)授予追溯更改日志顶级条目 cn=changelog 的读取、搜索和比较权限。
不授予写入和删除访问权限,但暗中授予目录管理员的除外。
不为匿名用户授予读取访问权限,因为追溯更改日志条目可能包含对敏感信息(如密码)的修改。如果不希望经过验证的用户查看追溯更改日志的内容,您可能需要进一步限制对内容的访问权限。
要修改应用于追溯更改日志的默认访问控制策略,请修改 cn=changelog 条目的 aci 属性。请参见第 7 章,目录服务器访问控制。