Please use Mozilla or similar to view this page.
This document isn't finished
This information may be inaccurate, dated, or incomplete. Please contact me if you find an error.
http://www.pgsql.com

Greetings, this is a HOW-TO of sorts based on the notes I've taken while pounding out a working configuration between OpenLDAP and PostgreSQL. Let me explain why I insisted on using pgsql. The normal DB type for openldap is Berkeley DB. Unfortunately in my past experience, when something breaks in a record you normally have to delete the record and add a new one. I.e. a trailing space in some field somewhere that you can't find. A glitch that breaks a record entry and the ldap tools can't handle the update to it. Etc., the list goes on. In SQL however I find that record fixing is incredibly more easy as well as quite a variety of programs for maintenance.

Do keep in mind that the weight of an RDBMS compared to a simple flat DB file is overbalanced for small systems. It can get to be quite dilly when you try to scale up to hundreds of thousands of entities. Not just for performance but for management. All this being said, there are technical merits to plain DB as there are for SQL. The rest is religious. Frankly I dislike Berkeley DB for so many technical reasons. Berkeley DB is not a bad thing it's just a thing that is not sufficient for my uses.

Ok, let's get going here. First there is a openldap patch that I suggest applying. I haven't spent any time figuring it out and I built the tables in SQL by hand. The patch comes with stored procedures for your psql engine and a variety of other tidbits. It modifies the search.c code slightly for proper handling. Acknowledgement to < erik(at)ehofman.com> for the patch which applies fairly cleanly against openldap 2.0.11 (use patch fuzz level 1). The patch failed against the configure.in file but I simply hand edited it and replaced the original odbc check with the psqlodbc check. Note that I have intentionally spelled it psqlodbc instead of odbcpsql which is in the patch, because that is the library filename that comes with postgres. I should also note that I am using pgsql version 7.2cvs (CVS dated roughly June 1st, 2001).