3.6. 为属性和对象类手动创建自定义架构文件
如果要手动创建自定义模式,将其存储在 /etc/dirsrv/slapd-instance_name/schema/99user.ldif
文件中。可能使用不同的文件名,但会导致出现缺陷,如存储在其他文件中的 schema 定义,但随后存储在副本上的 /etc/dirsrv/slapd-instance_name/schema/99user.ldif
中。请参阅 目录服务器如何在复制环境中管理模式更新。
这个过程添加:
-
名为
dateOfBirth
的单值属性,带有 OID2.16.840.1.1133730.2.1.123
和语法目录字符串
(OID1.3.6.1.4.1.1466.115.121.1.15
) -
名为
exampleperson
的对象类没有父对象类(SUP top
),它必须包含dateOfBirth
属性。
流程
在
/etc/dirsrv/slapd-instance_name/schema/99user.ldif
文件中的dn: cn=schema
条目中添加以下内容:attributeTypes: ( 2.16.840.1.1133730.2.1.123 NAME 'dateOfBirth' DESC 'For employee birthday' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' ) objectClasses: ( 2.16.840.1.1133730.2.1.99 NAME 'exampleperson' DESC 'An example person object class' SUP top STRUCTURAL MUST dateOfBirth X-ORIGIN 'user defined' )
运行 schema reload 任务:
#
dsconf -D "cn=Directory Manager" ldap://server.example.com schema reload
验证步骤:
监控
/var/log/dirsrv/slapd-instance_name/errors
文件:如果构建成功,Directory 服务器日志:
[23/Sep/2021:13:47:33.334241406 +0200] - INFO - schemareload - schemareload_thread - Schema reload task starts (schema dir: default) ... [23/Sep/2021:13:47:33.415692558 +0200] - INFO - schemareload - schemareload_thread - Schema validation passed. [23/Sep/2021:13:47:33.454768148 +0200] - INFO - schemareload - schemareload_thread - Schema reload task finished.
- 如果构建失败,Directory 服务器会记录步骤失败以及原因。