10.4. 导出和导入加密的数据库

导出和导入加密数据库与导出和导入常规数据库类似。但是,当您导出数据并在将数据重新导入到数据库时,必须解密加密的信息。

10.4.1. 导出加密的数据库

要从加密数据库导出数据,请将 -E 参数传给 dsconf 命令。
例如,使用解密的属性导出完整的 用户Root 数据库:
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend export -E userRoot
或者,您只能导出特定的子树。例如,要导出 ou=People,dc=example,dc=com 条目中的所有数据:
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend export -E -s "ou=People,dc=example,dc=com" userRoot
有关使用 dsconf 导出数据的详情,请参考 第 6.2.1.1.1 节 “使用 dsconf backend export 命令导出数据库”

10.4.2. 将 LDIF 文件导入到加密的数据库中

在启用属性加密时将数据导入到数据库:
  1. 停止 Directory 服务器实例:
    # dsctl instance_name stop
  2. 如果您在上次导出和此导入之间替换了证书数据库,请编辑 /etc/dirsrv/slapd-instance_name/dse.ldif 文件,并删除以下条目,包括其属性:
    • cn=AES,cn=encrypted 属性 key,cn=database_name,cn=ldbm database,cn=plugins,cn=config
    • cn=3DES,cn=encrypted attribute keys,cn=database_name,cn=ldbm database,cn=plugins,cn=config
    重要
    删除所有数据库的条目。如果包含 nsSymmetricKey 属性的任何条目保留在 /etc/dirsrv/slapd-instance_name/dse.ldif 文件中,则目录服务器将无法启动。
  3. 导入 LDIF 文件。例如,要将 /tmp/example.ldif 导入到 用户Root 数据库中:
    # dsctl instance_name ldif2db --encrypted userRoot /tmp/example.ldif
    --encrypted 参数可让脚本加密在导入过程中为加密配置的属性。
  4. 启动实例:
    # dsctl instance_name start