本节中的指令仅适用于定义它们的数据库。每种类型的数据库都支持它们。
database <type> |
此指令标记新的数据库实例定义的开始。 <type> 应该是前一项中列出的后端类型之一。
示例
database bdb
这标记新的 BDB 后端数据库实例定义的开始。
readonly { on | off } |
此指令将数据库置于“只读”模式。 任何修改数据库的尝试都将返回“拒绝执行”错误。
默认
readonly off
replica uri=ldap[s]://<hostname>[:<port>] | host=<hostname>[:<port>] [bindmethod={simple|kerberos|sasl}] ["binddn=<DN>"] [saslmech=<mech>] [authcid=<identity>] [authzid=<identity>] [credentials=<password>] [srvtab=<filename>] |
此指令为该数据库指定一个复制站点。 uri= 参数指定方案、主机以及可选的端口,可以在其中找到从属 slapd 实例。域名或 IP 地址都可以用于 <hostname>。如果未给出 <port>,则使用标准 LDAP 端口号(389 或 636)。
注意:host 参数已被弃用,请使用 uri 参数。
uri 允许将副本 LDAP 服务器指定为 LDAP URI,例如 ldap://slave.example.com:389 或 ldaps://slave.example.com:636
binddn= 参数给出绑定为从属 slapd 更新的 DN。 它应该是一个具有从属 slapd 数据库读/写权限的 DN。 它还必须与从属 slapd 配置文件中的 updatedn 指令匹配。 通常,此 DN 不应 与主数据库的 rootdn 相同。 由于 DN 很可能包含嵌入的空格,因此整个“binddn=<DN>”字符串应包含在双引号中。
bindmethod 是 simple、kerberos 或 sasl,具体取决于连接到从属 slapd 时是使用简单的基于密码的身份验证、Kerberos 身份验证还是 SASL 身份验证。
除非已采取足够的完整性和隐私保护措施(例如 TLS 或 IPSEC),否则不应使用简单身份验证。 简单身份验证需要指定 binddn 和 credentials 参数。
Kerberos 身份验证已被弃用,建议使用 SASL 身份验证机制,特别是 KERBEROS_V4 和 GSSAPI 机制。 Kerberos 身份验证需要 binddn 和 srvtab 参数。
通常建议使用 SASL 身份验证。 SASL 身份验证需要使用 saslmech 参数指定机制。 根据机制,可以使用 authcid 和 credentials 分别指定身份验证身份和/或凭据。 authzid 参数可用于指定授权身份。
查看此 URL 了解更多详情: 使用 Slurpd 进行复制。
replogfile <filename> |
此指令指定复制日志文件的名称,slapd 将更改记录到该文件。 复制日志通常由 slapd 写入,并由 slurpd 读取。 通常,此指令仅在使用 slurpd 复制数据库时使用。 但是,如果 slurpd 未运行,您也可以使用它来生成事务日志。 在这种情况下,您需要定期截断该文件,因为它会无限期地增长。
查看此 URL 了解更多详情: 使用 Slurpd 进行复制。
rootdn <dn> |
此指令指定不受访问控制或管理限制约束的 DN,用于对该数据库进行操作。 该 DN 不需要引用目录中的条目。 该 DN 可以引用 SASL 身份。
基于条目的示例
rootdn "cn=Manager, dc=example, dc=com"
基于 SASL 的示例
rootdn "uid=root,cn=example.com,cn=digest-md5,cn=auth"
rootpw <password> |
此指令可用于为 rootdn 指定密码(当 rootdn 设置为数据库中的 DN 时)。
示例
rootpw secret
也允许以 RFC 2307 格式提供密码哈希值。 slappasswd 可用于生成密码哈希值。
示例
rootpw {SSHA}ZKKuqbEKJfKSXhUbHG3fG8MDn9j1v4QN
哈希值是使用命令 slappasswd -s secret 生成的。
suffix <dn suffix> |
此指令指定将传递到此后端数据库的查询的 DN 后缀。 可以给出多个 suffix 行,并且每个数据库定义至少需要一个。
示例
suffix "dc=example, dc=com"
DN 以 “dc=example, dc=com” 结尾的查询将被传递到此后端。
注意: 当选择将查询传递到的后端时,slapd 会按文件中的出现顺序查看每个数据库定义中的 suffix 行。 因此,如果一个数据库后缀是另一个数据库后缀的前缀,则它必须出现在配置文件中之后的位置。
syncrepl |
此指令用于保持复制数据库与主数据库同步,以便复制数据库内容与主数据库内容保持最新。
本文档不详细介绍此指令,因为我们正在配置单个 LDAP 服务器。 有关此指令的更多信息,请访问:LDAP 同步复制。
updatedn <dn> |
此指令仅适用于从属 slapd。 它指定允许对副本进行更改的 DN。 这可能是 slurpd 在对副本进行更改时绑定的 DN,也可能是与 SASL 身份关联的 DN。
基于条目的示例
updatedn "cn=Update Daemon, dc=example, dc=com"
基于 SASL 的示例
updatedn "uid=slurpd,cn=example.com,cn=digest-md5,cn=auth"
查看此 URL 了解更多详情: 使用 Slurpd 进行复制。
updateref <URL> |
此指令仅适用于从属 slapd。 它指定返回给客户端的 URL,这些客户端在副本上提交更新请求。 如果多次指定,则提供每个 URL。
示例
updateref ldap://master.example.net