bdb_dn2entry(“cn = kerberoskdc,cn = config,dc = example,dc = com”)含义?

时间:2017-12-24 17:08:09

标签: ldap openldap berkeley-db

第三行是什么意思。我在绑定用户时运行openldap服务器时收到此消息。

entry_decode(cn=user,dc=example,dc=com)
5a3fd996 => bdb_search
5a3fd996 bdb_dn2entry("cn=kerberoskdc,cn=config,dc=example,dc=com")

1 个答案:

答案 0 :(得分:0)

这是slapd请求其后端加载与专有名称"cn=kerberoskdc,cn=config,dc=example,dc=com"对应的数据。在执行ldap操作时,这会发生很多事情,dn用作快速查找的主键。

bdb_dn2entryslapd后端使用的内部函数,在执行ldap操作时调用它(您应该能够看到哪个操作在日志文件中触发调用这条线出现的地方)。

  

Openldap将后端用于普通的slapd数据库。后端做了   存储或检索数据以响应LDAP的实际工作   要求。后端可以静态编译为slapd,或者何时编译   模块支持已启用,它们可能是动态加载的。

     

OpenLDAP的bdb abd hdb后端使用Oracle Berkeley DB(BDB)   用于存储数据的包。

bdb_dn2entry是一个实际从数据库中检索数据的函数。它与其他ldap的后端共享(不仅适用于bdb / hdb),因为它在源代码的头文件proto-bdb.h中被定义为函数原型:

/**
 * dn2entry.c
 */
#define bdb_dn2entry                BDB_SYMBOL(dn2entry)

int bdb_dn2entry LDAP_P(( Operation *op, DB_TXN *tid,
    struct berval *dn, EntryInfo **e, int matched,
    DB_LOCK *lock ));

实际行动发生在dn2entry.c

dn2entry在缓存/索引中查找dn并返回相应的条目。如果未找到请求的DN且matchedTRUE,则返回DN最近祖先的信息。否则EntryInfo eNULL