이 고유 이름 "cn=kerberoskdc,cn=config,dc=example,dc=com"
에 대응하는 데이터를로드하기 위해 백엔드 요청 slapd
이다. 이 작업은 LDAP 작업을 수행 할 때 많이 발생하며 dn은 빠른 조회의 기본 키로 사용됩니다.
bdb_dn2entry
은 slapd
의 백엔드에서 사용하는 내부 함수로, LDAP 작업이 수행 될 때 호출됩니다 (이 행이 나타나는 로그 파일에서 어떤 작업이 호출을 트리거하는지 볼 수 있어야합니다).
Openldap은 일반 slapd 데이터베이스에 백엔드를 사용합니다. 백엔드는 LDAP 요청에 대한 응답으로 데이터를 저장하거나 검색하는 실제 작업을 수행합니다. 백엔드는 slapd에 정적으로 컴파일되거나 모듈 지원이 활성화되면 동적으로로드 될 수 있습니다.
OpenLDAP의 bdb
abd hdb
백엔드는 Oracle Berkeley DB (BDB) 패키지를 사용하여 데이터를 저장합니다.
bdb_dn2entry
은 데이터베이스에서 실제로 데이터를 검색하는 기능입니다. 이 소스 코드에서 헤더 파일 proto-bdb.h에서 함수의 프로토 타입으로 정의되어 그것은 (뿐만 아니라 BDB/HDB에 대한) 다른 LDAP의 백엔드와 공유 :
/**
* 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이없고 matched
이 TRUE
인 경우 DN의 가장 가까운 조상에 대한 정보를 반환합니다. 그렇지 않은 경우 EntryInfo e
은 NULL
입니다.
EricLavault.. 자세한 답변을 보내 주셔서 감사합니다. 이 작업을 수행하는 동안 그 메시지를 받았습니다. con.auth 'cn = user, dc = example, dc = com', 'user'. 언급 한 DN이 다른 경우 다른 DN이 트리거되는 이유를 설명해 주시겠습니까? – Praneetha