[linux-l] LDAP (war: "Zeit die Distri zu wechseln...")

Volker Grabsch vog at notjusthosting.com
Mo Jun 7 18:36:29 CEST 2010


Frank Reker <frank at reker.net> schrieb:
> Am Mon 07. Jun 2010 13:49 +0200 schrieb Volker Grabsch:
> 
> >Moderne Systeme gehen aber weg von einem reinen LDAP-Server. Sowohl bei
> >Datenbanken als auch bei den NoSQL-Sachen gibt einen Trend, LDAP mehr
> >als Protokoll statt als Datenmodell zu verstehen.
> >
> >Das heißt, man packt an seine bisherige Datenbank bzw. an seine Applikation
> >ein LDAP-Frontend ran, über das dann Mailclients und Authentifizierungs-
> >Dienste auf die Datenbank zugreifen. So spart man sich einen separaten
> 
> und was ist openldap anderes? openldap ist in ein front- und ein backend
> unterteilt. das frontend stellt das protokoll zur verfuegung das backend
> den datenzugriff. und als backend gibt es etliche. berkley-db, sql, shell,
> passwd, ... - backends.

Stimmt, ich sehe gerade, dass OpenLDAP inzwischen ein PostgreSQL-Backend
bedienen kann.

Nunja, mein Gedanke war eher ein PostgreSQL-Modul, das LDAP-Funktionalität
bereitstellt. Oder eine entsprechende Erweiterung für CouchDB, oder was
auch immer man verwendet. Aber so herum geht es natürlich auch.

> fuer sql-zugriffe laesst sich das sql-backend auch recht flexibel
> konfigurieren, so dass man die eigentlichen datenbankzugriffe dann
> per storage-procedure direkt in oracle/postgress/... eingeben kann.
>
> auf grund dieser modularitaet bedarf openldap aber auch etwas
> erfahrung oder alternativ viel geduld alles aufzusetzen. danach
> laeuft aber alles wunderbar stabil.

Mir ist in dem Zusammenhang folgende Howto aufgefallen:
http://darold.net/projects/ldap_pg/HOWTO/

Auf den ersten Blick macht die Howto einen ganz durchdachten Eindruck,
allerdings ist mir auch gleich ein großer Patzer aufgefallen:

    http://darold.net/projects/ldap_pg/HOWTO/x67.html#AEN82

    3.2.1. slapd.conf

    dbname          PgSQL
    dbuser          test
    dbpasswd        test
    insentry_query  "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"

Dieser Insert-Query wird knallen, wenn viele Benutzer gleichzeitig einen
Knoten anlegen wollen. Die Konstruktion "insert ... max(id)+1" ist ein
klassisches Anti-Pattern, d.h. der Autor kennt offenbar keine PostgreSQL-
Sequences.

(Ich war der Meinung, dass ich neulich genau dazu eine Warnung im PostgreSQL-
 Handbuch gelesen habe, aber ich kann die Stelle nicht mehr wiederfinden.)


Gruß
Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l