Provided by: slapd_2.5.19+dfsg-0ubuntu0.22.04.1_amd64 bug

NAME

       slapd-ndb - MySQL NDB backend to slapd

SYNOPSIS

       /etc/ldap/slapd.conf

DESCRIPTION

       The  ndb  backend  to  slapd(8)  uses  the  MySQL Cluster package to store data, through its NDB API.  It
       provides fault tolerance with extreme scalability, along with a degree of SQL compatibility.

       This backend is designed to store LDAP information using tables that are also visible from SQL. It uses a
       higher level SQL API for creating these tables, while using  the  low  level  NDB  API  for  storing  and
       retrieving  the  data  within  these  tables. The NDB Cluster engine allows data to be partitioned across
       multiple data nodes, and this backend allows multiple slapd instances to operate against a given database
       concurrently.

       The general approach is to use distinct tables for each LDAP object class.  Entries comprised of multiple
       object classes will have their data spread across multiple tables. The data tables use a 64  bit  entryID
       as their primary key. The DIT hierarchy is maintained in a separate table, which maps DNs to entryIDs.

       This  backend  is experimental. While intended to be a general-purpose backend, it is currently missing a
       number of common LDAP features.  See the TODO file in the source directory for details.

CONFIGURATION

       These slapd.conf options apply to the ndb backend database.  That is, they must follow a  "database  ndb"
       line  and come before any subsequent "backend" or "database" lines.  Other database options are described
       in the slapd.conf(5) manual page.

DATA SOURCE CONFIGURATION

       dbhost <hostname>
              The name or IP address of the host running the MySQL server. The default is "localhost".  On  Unix
              systems,  the  connection  to  a  local  server  is made using a Unix Domain socket, whose path is
              specified using the dbsocket directive.

       dbuser <username>
              The MySQL login ID to use when  connecting  to  the  MySQL  server.  The  chosen  user  must  have
              sufficient privileges to manipulate the SQL tables in the target database.

       dbpasswd <password>
              The password for the dbuser.

       dbname <database name>
              The name of the MySQL database to use.

       dbport <port>
              The port number to use for the TCP connection to the MySQL server.

       dbsocket <path>
              The socket to be used for connecting to a local MySQL server.

       dbflag <integer>
              Client flags for the MySQL session. See the MySQL documentation for details.

       dbconnect <connectstring>
              The name or IP address of the host running the cluster manager. The default is "localhost".

       dbconnections <integer>
              The  number  of  cluster  connections  to  establish.  Using up to 4 may improve performance under
              heavier load. The default is 1.

SCHEMA CONFIGURATION

       attrlen <attribute> <length>
              Specify the column length to use for  a  particular  attribute.  LDAP  attributes  are  stored  in
              individual columns of the SQL tables. The maximum column lengths for each column must be specified
              when  creating  these  tables. If a length constraint was specified in the attribute's LDAP schema
              definition, that value will be used by default. If the schema didn't  specify  a  constraint,  the
              default is 128 bytes.  Currently the maximum is 1024.

       index <attr[,attr...]>
              Specify  a  list  of  attributes  for  which indexing should be maintained.  Currently there is no
              support for substring  indexing;  a  single  index  structure  provides  presence,  equality,  and
              inequality indexing for the specified attributes.

       attrset <set> <attrs>
              Specify  a  list  of  attributes to be treated as an attribute set. This directive creates a table
              named set which will contain all of the listed attributes.  Ordinarily an attribute resides  in  a
              table  named  by  an object class that uses the attribute. However, attributes are only allowed to
              appear in a single table.  For  attributes  that  are  derived  from  an  inherited  object  class
              definition,  the  attribute  will  only  be  stored in the superior class's table.  Attribute sets
              should be defined for any attributes that are used in multiple  unrelated  object  classes,  i.e.,
              classes that are not connected by a simple inheritance chain.

ACCESS CONTROL

       The ndb backend honors most access control semantics as indicated in slapd.access(5).

FILES

       /etc/ldap/slapd.conf
              default slapd configuration file

SEE ALSO

       slapd.conf(5),  slapd-config(5),  slapd(8),  slapadd(8),  slapcat(8),  slapindex(8), slapmodify(8), MySQL
       Cluster documentation.

AUTHOR

       Howard Chu, with assistance from Johan Andersson et al @ MySQL.

OpenLDAP 2.5.19+dfsg-0ubuntu0.22.04.1              2024/11/26                                       SLAPD-NDB(5)