2022-05-14 00:32:56 +08:00
|
|
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
|
|
<refentry id="ldb.3">
|
2022-05-14 00:33:03 +08:00
|
|
|
<refentryinfo><date>2015-04-26</date></refentryinfo>
|
2022-05-14 00:32:56 +08:00
|
|
|
|
|
|
|
<refmeta>
|
|
|
|
<refentrytitle>ldb</refentrytitle>
|
|
|
|
<manvolnum>3</manvolnum>
|
|
|
|
<refmiscinfo class="source">LDB</refmiscinfo>
|
|
|
|
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
|
|
|
|
<refmiscinfo class="version">1.1</refmiscinfo>
|
|
|
|
</refmeta>
|
|
|
|
|
|
|
|
<refnamediv>
|
|
|
|
<refname>ldb</refname>
|
|
|
|
<refclass>The Samba Project</refclass>
|
|
|
|
<refpurpose>A light-weight database library</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
|
|
|
<synopsis>#include <ldb.h></synopsis>
|
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
ldb is a light weight embedded database library and API. With a
|
|
|
|
programming interface that is very similar to LDAP, ldb can store its
|
|
|
|
data either in a tdb(3) database or in a real LDAP database.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
When used with the tdb backend ldb does not require any database
|
|
|
|
daemon. Instead, ldb function calls are processed immediately by the
|
|
|
|
ldb library, which does IO directly on the database, while allowing
|
|
|
|
multiple readers/writers using operating system byte range locks. This
|
|
|
|
leads to an API with very low overheads, often resulting in speeds of
|
|
|
|
more than 10x what can be achieved with a more traditional LDAP
|
|
|
|
architecture.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In a taxonomy of databases ldb would sit half way between key/value
|
|
|
|
pair databases (such as berkley db or tdb) and a full LDAP
|
|
|
|
database. With a structured attribute oriented API like LDAP and good
|
|
|
|
indexing capabilities, ldb can be used for quite sophisticated
|
|
|
|
applications that need a light weight database, without the
|
|
|
|
administrative overhead of a full LDAP installation.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Included with ldb are a number of useful command line tools for
|
|
|
|
manipulating a ldb database. These tools are similar in style to the
|
|
|
|
equivalent ldap command line tools.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In its default mode of operation with a tdb backend, ldb can also be
|
|
|
|
seen as a "schema-less LDAP". By default ldb does not require a
|
|
|
|
schema, which greatly reduces the complexity of getting started with
|
|
|
|
ldb databases. As the complexity of you application grows you can take
|
|
|
|
advantage of some of the optional schema-like attributes that ldb
|
|
|
|
offers, or you can migrate to using the full LDAP api while keeping
|
|
|
|
your exiting ldb code.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you are new to ldb, then I suggest starting with the manual pages
|
|
|
|
for ldbsearch(1) and ldbedit(1), and experimenting with a local
|
|
|
|
database. Then I suggest you look at the ldb_connect(3) and
|
|
|
|
ldb_search(3) manual pages.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>TOOLS</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
|
|
<application>ldbsearch(1)</application>
|
|
|
|
- command line ldb search utility
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<application>ldbedit(1)</application>
|
|
|
|
- edit all or part of a ldb database using your favourite editor
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<application>ldbadd(1)</application>
|
|
|
|
- add records to a ldb database using LDIF formatted input
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<application>ldbdel(1)</application>
|
|
|
|
- delete records from a ldb database
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<application>ldbmodify(1)</application>
|
|
|
|
- modify records in a ldb database using LDIF formatted input
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>FUNCTIONS</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_connect(3)</function>
|
|
|
|
- connect to a ldb backend
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_search(3)</function>
|
|
|
|
- perform a database search
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_add(3)</function>
|
|
|
|
- add a record to the database
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_delete(3)</function>
|
|
|
|
- delete a record from the database
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_modify(3)</function>
|
|
|
|
- modify a record in the database
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_errstring(3)</function>
|
|
|
|
- retrieve extended error information from the last operation
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_ldif_write(3)</function>
|
|
|
|
- write a LDIF formatted message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_ldif_write_file(3)</function>
|
|
|
|
- write a LDIF formatted message to a file
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_ldif_read(3)</function>
|
|
|
|
- read a LDIF formatted message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_ldif_read_free(3)</function>
|
|
|
|
- free the result of a ldb_ldif_read()
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_ldif_read_file(3)</function>
|
|
|
|
- read a LDIF message from a file
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_ldif_read_string(3)</function>
|
|
|
|
- read a LDIF message from a string
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_find_element(3)</function>
|
|
|
|
- find an element in a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_val_equal_exact(3)</function>
|
|
|
|
- compare two ldb_val structures
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_find_val(3)</function>
|
|
|
|
- find an element by value
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_add_empty(3)</function>
|
|
|
|
- add an empty message element to a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_add(3)</function>
|
|
|
|
- add a non-empty message element to a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_element_compare(3)</function>
|
|
|
|
- compare two ldb_message_element structures
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_find_int(3)</function>
|
|
|
|
- return an integer value from a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_find_uint(3)</function>
|
|
|
|
- return an unsigned integer value from a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_find_double(3)</function>
|
|
|
|
- return a double value from a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_msg_find_string(3)</function>
|
|
|
|
- return a string value from a ldb_message
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_set_alloc(3)</function>
|
|
|
|
- set the memory allocation function to be used by ldb
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_set_debug(3)</function>
|
|
|
|
- set a debug handler to be used by ldb
|
|
|
|
</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>
|
|
|
|
<function>ldb_set_debug_stderr(3)</function>
|
|
|
|
- set a debug handler for stderr output
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Author</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
ldb was written by
|
|
|
|
<ulink url="https://www.samba.org/~tridge/">Andrew Tridgell</ulink>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you wish to report a problem or make a suggestion then please see
|
|
|
|
the <ulink url="http://ldb.samba.org/"/> web site for
|
|
|
|
current contact and maintainer information.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
ldb is released under the GNU Lesser General Public License version 2
|
|
|
|
or later. Please see the file COPYING for license details.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|