Need help with ldap2pg?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

131 Stars 21 Forks PostgreSQL License 1.2K Commits 17 Opened issues


:elephant: :busts_in_silhouette: Manage PostgreSQL roles and privileges from YAML or LDAP

Services available


Need anything else?

Contributors list


| |CircleCI| |Codecov| |RTD| |PyPI| |Docker|

Swiss-army knife to synchronize Postgres roles and privileges from YAML or LDAP.

.. _documentation: .. _license: .. _contributors:


  • Creates, alters and drops PostgreSQL roles from LDAP queries.
  • Creates static roles from YAML to complete LDAP entries.
  • Manages role members (alias groups).
  • Grants or revokes privileges statically or from LDAP entries.
  • Dry run.
  • Logs LDAP queries as
  • Logs every SQL query.
  • Reads settings from an expressive YAML config file.

Here is a sample configuration and execution:


$ cat ldap2pg.yml
- role:
    name: ldap_roles
    options: NOLOGIN
- ldap:
    base: ou=people,dc=ldap,dc=ldap2pg,dc=docker
    filter: "(objectClass=organizationalPerson)"
    name: '{cn}'
    options: LOGIN
    parent: ldap_roles
$ ldap2pg --real
Starting ldap2pg 5.3.
Using .../ldap2pg.yml.
Running in real mode.
Inspecting roles in Postgres cluster...
Querying LDAP ou=people,dc=ldap,dc=lda... (objectClass...
Create domitille.
Add missing ldap_roles members.
Delete spurious ldap_roles members.
Update options of albert.
Reassign oscar objects and purge ACL on postgres.
Reassign oscar objects and purge ACL on template1.
Drop oscar.
Synchronization complete.

See versionned

_ and documentation_ for further options.


Install it from PyPI tarball::

pip install ldap2pg psycopg2-binary

More details can be found in documentation_.

is licensed under PostgreSQL license.
is available with the help of wonderful people, jump to contributors
list to see them.

is reported to work with
, Oracle Internet Directory and Microsoft Active Directory.

.. _OpenLDAP: .. _FreeIPA:


If you need support and you didn't found it in documentation, just drop a question in a

GitHub issue 
! French accepted. Don't miss the

_. You're welcome!

.. |Codecov| image:: :target: :alt: Code coverage report

.. |CircleCI| image:: :target: :alt: Continuous Integration report

.. |Docker| image:: :target: :alt: Docker Image Available

.. |ldap2pg| image:: :target: :alt: ldap2pg: PostgreSQL role and privileges management

.. |PyPI| image:: :target: :alt: Version on PyPI

.. |RTD| image:: :target: :alt: Documentation

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.