mirror of
https://github.com/processone/ejabberd
synced 2025-10-05 19:42:11 +02:00
Document GS in the Guide, undocument the mod_*_odbc
This commit is contained in:
parent
9e2d614b41
commit
b1545d1d7d
1 changed files with 108 additions and 107 deletions
215
doc/guide.tex
215
doc/guide.tex
|
@ -73,23 +73,18 @@
|
||||||
\newcommand{\modhttpbind}{\module{mod\_http\_bind}}
|
\newcommand{\modhttpbind}{\module{mod\_http\_bind}}
|
||||||
\newcommand{\modhttpfileserver}{\module{mod\_http\_fileserver}}
|
\newcommand{\modhttpfileserver}{\module{mod\_http\_fileserver}}
|
||||||
\newcommand{\modlast}{\module{mod\_last}}
|
\newcommand{\modlast}{\module{mod\_last}}
|
||||||
\newcommand{\modlastodbc}{\module{mod\_last\_odbc}}
|
|
||||||
\newcommand{\modmuc}{\module{mod\_muc}}
|
\newcommand{\modmuc}{\module{mod\_muc}}
|
||||||
\newcommand{\modmuclog}{\module{mod\_muc\_log}}
|
\newcommand{\modmuclog}{\module{mod\_muc\_log}}
|
||||||
\newcommand{\modmulticast}{\module{mod\_multicast}}
|
\newcommand{\modmulticast}{\module{mod\_multicast}}
|
||||||
\newcommand{\modoffline}{\module{mod\_offline}}
|
\newcommand{\modoffline}{\module{mod\_offline}}
|
||||||
\newcommand{\modofflineodbc}{\module{mod\_offline\_odbc}}
|
|
||||||
\newcommand{\modping}{\module{mod\_ping}}
|
\newcommand{\modping}{\module{mod\_ping}}
|
||||||
\newcommand{\modprivacy}{\module{mod\_privacy}}
|
\newcommand{\modprivacy}{\module{mod\_privacy}}
|
||||||
\newcommand{\modprivacyodbc}{\module{mod\_privacy\_odbc}}
|
|
||||||
\newcommand{\modprivate}{\module{mod\_private}}
|
\newcommand{\modprivate}{\module{mod\_private}}
|
||||||
\newcommand{\modprivateodbc}{\module{mod\_private\_odbc}}
|
|
||||||
\newcommand{\modproxy}{\module{mod\_proxy65}}
|
\newcommand{\modproxy}{\module{mod\_proxy65}}
|
||||||
\newcommand{\modpubsub}{\module{mod\_pubsub}}
|
\newcommand{\modpubsub}{\module{mod\_pubsub}}
|
||||||
\newcommand{\modpubsubodbc}{\module{mod\_pubsub\_odbc}}
|
\newcommand{\modpubsubodbc}{\module{mod\_pubsub\_odbc}}
|
||||||
\newcommand{\modregister}{\module{mod\_register}}
|
\newcommand{\modregister}{\module{mod\_register}}
|
||||||
\newcommand{\modroster}{\module{mod\_roster}}
|
\newcommand{\modroster}{\module{mod\_roster}}
|
||||||
\newcommand{\modrosterodbc}{\module{mod\_roster\_odbc}}
|
|
||||||
\newcommand{\modservicelog}{\module{mod\_service\_log}}
|
\newcommand{\modservicelog}{\module{mod\_service\_log}}
|
||||||
\newcommand{\modsharedroster}{\module{mod\_shared\_roster}}
|
\newcommand{\modsharedroster}{\module{mod\_shared\_roster}}
|
||||||
\newcommand{\modsic}{\module{mod\_sic}}
|
\newcommand{\modsic}{\module{mod\_sic}}
|
||||||
|
@ -97,7 +92,6 @@
|
||||||
\newcommand{\modtime}{\module{mod\_time}}
|
\newcommand{\modtime}{\module{mod\_time}}
|
||||||
\newcommand{\modvcard}{\module{mod\_vcard}}
|
\newcommand{\modvcard}{\module{mod\_vcard}}
|
||||||
\newcommand{\modvcardldap}{\module{mod\_vcard\_ldap}}
|
\newcommand{\modvcardldap}{\module{mod\_vcard\_ldap}}
|
||||||
\newcommand{\modvcardodbc}{\module{mod\_vcard\_odbc}}
|
|
||||||
\newcommand{\modvcardxupdate}{\module{mod\_vcard\_xupdate}}
|
\newcommand{\modvcardxupdate}{\module{mod\_vcard\_xupdate}}
|
||||||
\newcommand{\modversion}{\module{mod\_version}}
|
\newcommand{\modversion}{\module{mod\_version}}
|
||||||
|
|
||||||
|
@ -119,6 +113,12 @@ the processing discipline for #1 IQ queries (see section~\ref{modiqdiscoption}).
|
||||||
hostname of the virtual host with the prefix `\jid{#1.}'. The keyword "@HOST@"
|
hostname of the virtual host with the prefix `\jid{#1.}'. The keyword "@HOST@"
|
||||||
is replaced at start time with the real virtual host name.
|
is replaced at start time with the real virtual host name.
|
||||||
}
|
}
|
||||||
|
\newcommand{\backend}[1]{\titem{\{backend, mnesia|odbc\}} \ind{options!backend}
|
||||||
|
Specify the backend used to store the tables: #1.
|
||||||
|
The default value is \term{mnesia}.
|
||||||
|
If configured to \term{odbc}, then you must also configure in ejabberd
|
||||||
|
the database connection (see the subsections of \ref{database}).
|
||||||
|
}
|
||||||
|
|
||||||
%% Title page
|
%% Title page
|
||||||
\include{version}
|
\include{version}
|
||||||
|
@ -646,9 +646,10 @@ Examples:
|
||||||
domain \jid{example.com} is using the \ind{LDAP}LDAP server running on the
|
domain \jid{example.com} is using the \ind{LDAP}LDAP server running on the
|
||||||
domain \jid{localhost} to perform authentication:
|
domain \jid{localhost} to perform authentication:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "example.net", [{auth_method, internal}]}.
|
{host_config, "example.net", [{auth_method, storage},
|
||||||
|
{auth_storage, mnesia}]}.
|
||||||
|
|
||||||
{host_config, "example.com", [{auth_method, ldap},
|
{host_config, "example.com", [{auth_method, ldap],
|
||||||
{ldap_servers, ["localhost"]},
|
{ldap_servers, ["localhost"]},
|
||||||
{ldap_uids, [{"uid"}]},
|
{ldap_uids, [{"uid"}]},
|
||||||
{ldap_rootdn, "dc=localdomain"},
|
{ldap_rootdn, "dc=localdomain"},
|
||||||
|
@ -659,7 +660,8 @@ Examples:
|
||||||
while domain \jid{example.com} is using the LDAP servers running on the domains
|
while domain \jid{example.com} is using the LDAP servers running on the domains
|
||||||
\jid{localhost} and \jid{otherhost}:
|
\jid{localhost} and \jid{otherhost}:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "example.net", [{auth_method, odbc},
|
{host_config, "example.net", [{auth_method, storage},
|
||||||
|
{auth_storage, odbc},
|
||||||
{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}]}.
|
{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}]}.
|
||||||
|
|
||||||
{host_config, "example.com", [{auth_method, ldap},
|
{host_config, "example.com", [{auth_method, ldap},
|
||||||
|
@ -1163,39 +1165,72 @@ you have to make the transports log and do \ind{XDB}XDB by themselves:
|
||||||
\ind{authentication}\ind{options!auth\_method}
|
\ind{authentication}\ind{options!auth\_method}
|
||||||
|
|
||||||
The option \option{auth\_method} defines the authentication methods that are used
|
The option \option{auth\_method} defines the authentication methods that are used
|
||||||
for user authentication. The syntax is:
|
for user authentication.
|
||||||
\esyntax{\{auth\_method, [Method, ...]\}.}
|
Usually only one method is defined, with this syntax:
|
||||||
|
\esyntax{\{auth\_method, Method\}.}
|
||||||
|
This full syntax can be used to specify one or more methods:
|
||||||
|
\esyntax{\{auth\_method, [Method1, Method2, ...]\}.}
|
||||||
|
|
||||||
The following authentication methods are supported by \ejabberd{}:
|
The following authentication methods are supported by \ejabberd{}:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item internal (default) --- See section~\ref{internalauth}.
|
\item database storage in internal Mnesia or ODBC --- See section~\ref{authstorage}.
|
||||||
\item external --- See section~\ref{extauth}.
|
\item external --- See section~\ref{extauth}.
|
||||||
\item ldap --- See section~\ref{ldap}.
|
\item ldap --- See section~\ref{ldap}.
|
||||||
\item odbc --- See section~\ref{mysql}, \ref{pgsql},
|
|
||||||
\ref{mssql} and \ref{odbc}.
|
|
||||||
\item anonymous --- See section~\ref{saslanonymous}.
|
\item anonymous --- See section~\ref{saslanonymous}.
|
||||||
\item pam --- See section~\ref{pam}.
|
\item pam --- See section~\ref{pam}.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Account creation is only supported by internal, external and odbc methods.
|
Account creation is only supported by the methods:
|
||||||
|
internal Mnesia storage, ODBC storage, and external.
|
||||||
|
|
||||||
\makesubsubsection{internalauth}{Internal}
|
\makesubsubsection{authstorage}{Database Storage}
|
||||||
\ind{internal authentication}\ind{Mnesia}
|
\ind{storage authentication}\ind{Mnesia}
|
||||||
|
|
||||||
\ejabberd{} uses its internal Mnesia database as the default authentication method.
|
You can configure \ejabberd{} to use the database storage authentication method,
|
||||||
The value \term{internal} will enable the internal authentication method.
|
and store either in the internal Mnesia database or in an ODBC database.
|
||||||
|
The specific storage is configured with the option:
|
||||||
|
\begin{verbatim}
|
||||||
|
{auth_storage, mnesia|odbc}
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
When the storage is configured for ODBC, the ODBC server is
|
||||||
|
configured with the \term{odbc\_server} option, see
|
||||||
|
\ref{mysql} for MySQL, \ref{pgsql} for PostgreSQL, \ref{mssql} for MSSQL, and \ref{odbc} for generic ODBC.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item To use internal authentication on \jid{example.org} and LDAP
|
\item To use internal Mnesia storage on all virtual hosts:
|
||||||
authentication on \jid{example.net}:
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "example.org", [{auth_method, [internal]}]}.
|
{auth_method, storage}.
|
||||||
{host_config, "example.net", [{auth_method, [ldap]}]}.
|
{auth_storage, mnesia}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\item To use internal authentication on all virtual hosts:
|
\item To use ODBC storage on all virtual hosts:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{auth_method, internal}.
|
{auth_method, storage}.
|
||||||
|
{auth_storage, odbc}.
|
||||||
|
\end{verbatim}
|
||||||
|
\item To use Mnesia storage on \jid{example.org},
|
||||||
|
ODBC storage in a MySQL database on \jid{example.com},
|
||||||
|
ODBC storage in a PostgreSQL database on \jid{example2.com},
|
||||||
|
and LDAP on \jid{example.net}:
|
||||||
|
\begin{verbatim}
|
||||||
|
{host_config, "example.org", [
|
||||||
|
{auth_method, storage},
|
||||||
|
{auth_storage, mnesia}
|
||||||
|
]}.
|
||||||
|
{host_config, "example.com", [
|
||||||
|
{auth_method, storage},
|
||||||
|
{auth_storage, odbc},
|
||||||
|
{odbc_server, {mysql, "localhost", "test", "root", "password"}}
|
||||||
|
]}.
|
||||||
|
{host_config, "example2.com", [
|
||||||
|
{auth_method, storage},
|
||||||
|
{auth_storage, odbc},
|
||||||
|
{odbc_server, "DSN=database;UID=ejabberd;PWD=password"}
|
||||||
|
]}.
|
||||||
|
{host_config, "example.net", [
|
||||||
|
{auth_method, ldap}
|
||||||
|
]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
@ -1225,12 +1260,12 @@ These are the specific options:
|
||||||
the authentication information since the user last disconnected,
|
the authentication information since the user last disconnected,
|
||||||
to verify again the user authentication without querying again the extauth script.
|
to verify again the user authentication without querying again the extauth script.
|
||||||
Note: caching should not be enabled in a host if internal auth is also enabled.
|
Note: caching should not be enabled in a host if internal auth is also enabled.
|
||||||
If caching is enabled, \term{mod\_last} or \term{mod\_last\_odbc} must be enabled also in that vhost.
|
If caching is enabled, \term{mod\_last} must be enabled also in that vhost.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
This example sets external authentication, the extauth script, and enables caching for 10 minutes:
|
This example sets external authentication, the extauth script, and enables caching for 10 minutes:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{auth_method, [external]}.
|
{auth_method, external}.
|
||||||
{extauth_program, "/etc/ejabberd/JabberAuth.class.php"}.
|
{extauth_program, "/etc/ejabberd/JabberAuth.class.php"}.
|
||||||
{extauth_cache, 600}.
|
{extauth_cache, 600}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
@ -1268,33 +1303,33 @@ Examples:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item To enable anonymous login on all virtual hosts:
|
\item To enable anonymous login on all virtual hosts:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{auth_method, [anonymous]}.
|
{auth_method, anonymous}.
|
||||||
{anonymous_protocol, login_anon}.
|
{anonymous_protocol, login_anon}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\item Similar as previous example, but limited to \jid{public.example.org}:
|
\item Similar as previous example, but limited to \jid{public.example.org}:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "public.example.org", [{auth_method, [anonymous]},
|
{host_config, "public.example.org", [{auth_method, anonymous},
|
||||||
{anonymous_protocol, login_anon}]}.
|
{anonymous_protocol, login_anon}]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\item To enable anonymous login and internal authentication on a virtual host:
|
\item To enable anonymous login and internal authentication on a virtual host:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "public.example.org", [{auth_method, [internal,anonymous]},
|
{host_config, "public.example.org", [{auth_method, [internal, anonymous]},
|
||||||
{anonymous_protocol, login_anon}]}.
|
{anonymous_protocol, login_anon}]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\item To enable SASL Anonymous on a virtual host:
|
\item To enable SASL Anonymous on a virtual host:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "public.example.org", [{auth_method, [anonymous]},
|
{host_config, "public.example.org", [{auth_method, anonymous},
|
||||||
{anonymous_protocol, sasl_anon}]}.
|
{anonymous_protocol, sasl_anon}]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\item To enable SASL Anonymous and anonymous login on a virtual host:
|
\item To enable SASL Anonymous and anonymous login on a virtual host:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "public.example.org", [{auth_method, [anonymous]},
|
{host_config, "public.example.org", [{auth_method, anonymous},
|
||||||
{anonymous_protocol, both}]}.
|
{anonymous_protocol, both}]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\item To enable SASL Anonymous, anonymous login, and internal authentication on
|
\item To enable SASL Anonymous, anonymous login, and internal authentication on
|
||||||
a virtual host:
|
a virtual host:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "public.example.org", [{auth_method, [internal,anonymous]},
|
{host_config, "public.example.org", [{auth_method, [internal, anonymous]},
|
||||||
{anonymous_protocol, both}]}.
|
{anonymous_protocol, both}]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -1323,7 +1358,7 @@ Default is \term{username}.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{auth_method, [pam]}.
|
{auth_method, pam}.
|
||||||
{pam_service, "ejabberd"}.
|
{pam_service, "ejabberd"}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
@ -1835,7 +1870,8 @@ For example:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
{host_config, "public.example.org", [
|
{host_config, "public.example.org", [
|
||||||
{odbc_server, {pgsql, "localhost", "database-public-example-org", "ejabberd", "password"}},
|
{odbc_server, {pgsql, "localhost", "database-public-example-org", "ejabberd", "password"}},
|
||||||
{auth_method, [odbc]}
|
{auth_method, storage},
|
||||||
|
{auth_storage, odbc}
|
||||||
]}.
|
]}.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
@ -1920,25 +1956,17 @@ You can modify this interval with this option:
|
||||||
\makesubsubsection{mysqlauth}{Authentication}
|
\makesubsubsection{mysqlauth}{Authentication}
|
||||||
\ind{MySQL!authentication}
|
\ind{MySQL!authentication}
|
||||||
|
|
||||||
The option value name may be misleading, as the \term{auth\_method} name is used
|
See section~\ref{authstorage}.
|
||||||
for access to a relational database through ODBC, as well as through the native
|
|
||||||
MySQL interface. Anyway, the first configuration step is to define the odbc
|
|
||||||
\term{auth\_method}. For example:
|
|
||||||
\begin{verbatim}
|
|
||||||
{auth_method, [odbc]}.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
\makesubsubsection{mysqlstorage}{Storage}
|
\makesubsubsection{mysqlstorage}{Storage}
|
||||||
\ind{MySQL!storage}
|
\ind{MySQL!storage}
|
||||||
|
|
||||||
MySQL also can be used to store information into from several \ejabberd{}
|
MySQL also can be used to store information into from several \ejabberd{}
|
||||||
modules. See section~\ref{modoverview} to see which modules have a version
|
modules.
|
||||||
with the `\_odbc'. This suffix indicates that the module can be used with
|
See section~\ref{modoverview} to see which modules support an ODBC storage backend.
|
||||||
relational databases like MySQL. To enable storage to your database, just make
|
To configure the module to use ODBC as storage backend, add the option
|
||||||
sure that your database is running well (see previous sections), and replace the
|
\term{\{backend, odbc\}} to the module.
|
||||||
suffix-less or ldap module variant with the odbc module variant. Keep in mind
|
|
||||||
that you cannot have several variants of the same module loaded!
|
|
||||||
|
|
||||||
\makesubsection{mssql}{Microsoft SQL Server}
|
\makesubsection{mssql}{Microsoft SQL Server}
|
||||||
\ind{Microsoft SQL Server}\ind{Microsoft SQL Server!schema}
|
\ind{Microsoft SQL Server}\ind{Microsoft SQL Server!schema}
|
||||||
|
@ -1972,9 +2000,7 @@ enabled. This can be done, by using next commands:
|
||||||
\makesubsubsection{configuremssql}{Database Connection}
|
\makesubsubsection{configuremssql}{Database Connection}
|
||||||
\ind{Microsoft SQL Server!Database Connection}
|
\ind{Microsoft SQL Server!Database Connection}
|
||||||
|
|
||||||
The configuration of Database Connection for a Microsoft SQL Server
|
See section~\ref{authstorage}.
|
||||||
is the same as the configuration for
|
|
||||||
ODBC compatible servers (see section~\ref{configureodbc}).
|
|
||||||
|
|
||||||
|
|
||||||
\makesubsubsection{mssqlauth}{Authentication}
|
\makesubsubsection{mssqlauth}{Authentication}
|
||||||
|
@ -1990,13 +2016,10 @@ ODBC compatible servers (see section~\ref{odbcauth}).
|
||||||
\ind{Microsoft SQL Server!storage}
|
\ind{Microsoft SQL Server!storage}
|
||||||
|
|
||||||
Microsoft SQL Server also can be used to store information into from several
|
Microsoft SQL Server also can be used to store information into from several
|
||||||
\ejabberd{} modules. See section~\ref{modoverview} to see which modules have
|
\ejabberd{} modules.
|
||||||
a version with the `\_odbc'. This suffix indicates that the module can be used
|
See section~\ref{modoverview} to see which modules support an ODBC storage backend.
|
||||||
with relational databases like Microsoft SQL Server. To enable storage to your
|
To configure the module to use ODBC as storage backend, add the option
|
||||||
database, just make sure that your database is running well (see previous
|
\term{\{backend, odbc\}} to the module.
|
||||||
sections), and replace the suffix-less or ldap module variant with the odbc
|
|
||||||
module variant. Keep in mind that you cannot have several variants of the same
|
|
||||||
module loaded!
|
|
||||||
|
|
||||||
\makesubsection{pgsql}{PostgreSQL}
|
\makesubsection{pgsql}{PostgreSQL}
|
||||||
\ind{PostgreSQL}\ind{PostgreSQL!schema}
|
\ind{PostgreSQL}\ind{PostgreSQL!schema}
|
||||||
|
@ -2075,25 +2098,17 @@ Specify in seconds: for example 28800 means 8 hours.
|
||||||
\makesubsubsection{pgsqlauth}{Authentication}
|
\makesubsubsection{pgsqlauth}{Authentication}
|
||||||
\ind{PostgreSQL!authentication}
|
\ind{PostgreSQL!authentication}
|
||||||
|
|
||||||
The option value name may be misleading, as the \term{auth\_method} name is used
|
See section~\ref{authstorage}.
|
||||||
for access to a relational database through ODBC, as well as through the native
|
|
||||||
PostgreSQL interface. Anyway, the first configuration step is to define the odbc
|
|
||||||
\term{auth\_method}. For example:
|
|
||||||
\begin{verbatim}
|
|
||||||
{auth_method, [odbc]}.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
\makesubsubsection{pgsqlstorage}{Storage}
|
\makesubsubsection{pgsqlstorage}{Storage}
|
||||||
\ind{PostgreSQL!storage}
|
\ind{PostgreSQL!storage}
|
||||||
|
|
||||||
PostgreSQL also can be used to store information into from several \ejabberd{}
|
PostgreSQL also can be used to store information into from several \ejabberd{}
|
||||||
modules. See section~\ref{modoverview} to see which modules have a version
|
modules.
|
||||||
with the `\_odbc'. This suffix indicates that the module can be used with
|
See section~\ref{modoverview} to see which modules support an ODBC storage backend.
|
||||||
relational databases like PostgreSQL. To enable storage to your database, just
|
To configure the module to use ODBC as storage backend, add the option
|
||||||
make sure that your database is running well (see previous sections), and
|
\term{\{backend, odbc\}} to the module.
|
||||||
replace the suffix-less or ldap module variant with the odbc module variant.
|
|
||||||
Keep in mind that you cannot have several variants of the same module loaded!
|
|
||||||
|
|
||||||
\makesubsection{odbc}{ODBC Compatible}
|
\makesubsection{odbc}{ODBC Compatible}
|
||||||
\ind{databases!ODBC}
|
\ind{databases!ODBC}
|
||||||
|
@ -2154,24 +2169,17 @@ Specify in seconds: for example 28800 means 8 hours.
|
||||||
\makesubsubsection{odbcauth}{Authentication}
|
\makesubsubsection{odbcauth}{Authentication}
|
||||||
\ind{ODBC!authentication}
|
\ind{ODBC!authentication}
|
||||||
|
|
||||||
The first configuration step is to define the odbc \term{auth\_method}. For
|
See section~\ref{authstorage}.
|
||||||
example:
|
|
||||||
\begin{verbatim}
|
|
||||||
{auth_method, [odbc]}.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
\makesubsubsection{odbcstorage}{Storage}
|
\makesubsubsection{odbcstorage}{Storage}
|
||||||
\ind{ODBC!storage}
|
\ind{ODBC!storage}
|
||||||
|
|
||||||
An ODBC compatible database also can be used to store information into from
|
An ODBC compatible database also can be used to store information into from
|
||||||
several \ejabberd{} modules. See section~\ref{modoverview} to see which
|
several \ejabberd{} modules.
|
||||||
modules have a version with the `\_odbc'. This suffix indicates that the module
|
See section~\ref{modoverview} to see which modules support an ODBC storage backend.
|
||||||
can be used with ODBC compatible relational databases. To enable storage to your
|
To configure the module to use ODBC as storage backend, add the option
|
||||||
database, just make sure that your database is running well (see previous
|
\term{\{backend, odbc\}} to the module.
|
||||||
sections), and replace the suffix-less or ldap module variant with the odbc
|
|
||||||
module variant. Keep in mind that you cannot have several variants of the same
|
|
||||||
module loaded!
|
|
||||||
|
|
||||||
\makesubsection{ldap}{LDAP}
|
\makesubsection{ldap}{LDAP}
|
||||||
\ind{databases!LDAP}
|
\ind{databases!LDAP}
|
||||||
|
@ -2494,33 +2502,26 @@ The following table lists all modules included in \ejabberd{}.
|
||||||
\hline \ahrefloc{modhttpbind}{\modhttpbind{}} & XMPP over Bosh service (HTTP Binding) & \\
|
\hline \ahrefloc{modhttpbind}{\modhttpbind{}} & XMPP over Bosh service (HTTP Binding) & \\
|
||||||
\hline \ahrefloc{modhttpfileserver}{\modhttpfileserver{}} & Small HTTP file server & \\
|
\hline \ahrefloc{modhttpfileserver}{\modhttpfileserver{}} & Small HTTP file server & \\
|
||||||
\hline \ahrefloc{modlast}{\modlast{}} & Last Activity (\xepref{0012}) & \\
|
\hline \ahrefloc{modlast}{\modlast{}} & Last Activity (\xepref{0012}) & \\
|
||||||
\hline \ahrefloc{modlast}{\modlastodbc{}} & Last Activity (\xepref{0012}) & supported DB (*) \\
|
|
||||||
\hline \ahrefloc{modmuc}{\modmuc{}} & Multi-User Chat (\xepref{0045}) & \\
|
\hline \ahrefloc{modmuc}{\modmuc{}} & Multi-User Chat (\xepref{0045}) & \\
|
||||||
\hline \ahrefloc{modmuclog}{\modmuclog{}} & Multi-User Chat room logging & \modmuc{} \\
|
\hline \ahrefloc{modmuclog}{\modmuclog{}} & Multi-User Chat room logging & \modmuc{} \\
|
||||||
\hline \ahrefloc{modmulticast}{\modmulticast{}} & Multicast Service (\xepref{0033}) & \\
|
\hline \ahrefloc{modmulticast}{\modmulticast{}} & Multicast Service (\xepref{0033}) & \\
|
||||||
\hline \ahrefloc{modoffline}{\modoffline{}} & Offline message storage (\xepref{0160}) & \\
|
\hline \ahrefloc{modoffline}{\modoffline{}} & Offline message storage (\xepref{0160}) & \\
|
||||||
\hline \ahrefloc{modoffline}{\modofflineodbc{}} & Offline message storage (\xepref{0160}) & supported DB (*) \\
|
|
||||||
\hline \ahrefloc{modping}{\modping{}} & XMPP Ping and periodic keepalives (\xepref{0199}) & \\
|
\hline \ahrefloc{modping}{\modping{}} & XMPP Ping and periodic keepalives (\xepref{0199}) & \\
|
||||||
\hline \ahrefloc{modprivacy}{\modprivacy{}} & Blocking Communication (XMPP IM) & \\
|
\hline \ahrefloc{modprivacy}{\modprivacy{}} & Blocking Communication (XMPP IM) & \\
|
||||||
\hline \ahrefloc{modprivacy}{\modprivacyodbc{}} & Blocking Communication (XMPP IM) & supported DB (*) \\
|
|
||||||
\hline \ahrefloc{modprivate}{\modprivate{}} & Private XML Storage (\xepref{0049}) & \\
|
\hline \ahrefloc{modprivate}{\modprivate{}} & Private XML Storage (\xepref{0049}) & \\
|
||||||
\hline \ahrefloc{modprivate}{\modprivateodbc{}} & Private XML Storage (\xepref{0049}) & supported DB (*) \\
|
|
||||||
\hline \ahrefloc{modproxy}{\modproxy{}} & SOCKS5 Bytestreams (\xepref{0065}) & \\
|
\hline \ahrefloc{modproxy}{\modproxy{}} & SOCKS5 Bytestreams (\xepref{0065}) & \\
|
||||||
\hline \ahrefloc{modpubsub}{\modpubsub{}} & Pub-Sub (\xepref{0060}), PEP (\xepref{0163}) & \modcaps{} \\
|
\hline \ahrefloc{modpubsub}{\modpubsub{}} & Pub-Sub (\xepref{0060}), PEP (\xepref{0163}) & \modcaps{} \\
|
||||||
\hline \ahrefloc{modpubsub}{\modpubsubodbc{}} & Pub-Sub (\xepref{0060}), PEP (\xepref{0163}) & supported DB (*) and \modcaps{} \\
|
\hline \ahrefloc{modpubsub}{\modpubsubodbc{}} & Pub-Sub (\xepref{0060}), PEP (\xepref{0163}) & supported DB (*) and \modcaps{} \\
|
||||||
\hline \ahrefloc{modregister}{\modregister{}} & In-Band Registration (\xepref{0077}) & \\
|
\hline \ahrefloc{modregister}{\modregister{}} & In-Band Registration (\xepref{0077}) & \\
|
||||||
\hline \ahrefloc{modroster}{\modroster{}} & Roster management (XMPP IM) & \\
|
\hline \ahrefloc{modroster}{\modroster{}} & Roster management (XMPP IM) & \\
|
||||||
\hline \ahrefloc{modroster}{\modrosterodbc{}} & Roster management (XMPP IM) & supported DB (*) \\
|
|
||||||
\hline \ahrefloc{modservicelog}{\modservicelog{}} & Copy user messages to logger service & \\
|
\hline \ahrefloc{modservicelog}{\modservicelog{}} & Copy user messages to logger service & \\
|
||||||
\hline \ahrefloc{modsharedroster}{\modsharedroster{}} & Shared roster management & \modroster{} or \\
|
\hline \ahrefloc{modsharedroster}{\modsharedroster{}} & Shared roster management & \modroster{} \\
|
||||||
& & \modrosterodbc\\
|
|
||||||
\hline \ahrefloc{modsic}{\modsic{}} & Server IP Check (\xepref{0279}) & \\
|
\hline \ahrefloc{modsic}{\modsic{}} & Server IP Check (\xepref{0279}) & \\
|
||||||
\hline \ahrefloc{modstats}{\modstats{}} & Statistics Gathering (\xepref{0039}) & \\
|
\hline \ahrefloc{modstats}{\modstats{}} & Statistics Gathering (\xepref{0039}) & \\
|
||||||
\hline \ahrefloc{modtime}{\modtime{}} & Entity Time (\xepref{0202}) & \\
|
\hline \ahrefloc{modtime}{\modtime{}} & Entity Time (\xepref{0202}) & \\
|
||||||
\hline \ahrefloc{modvcard}{\modvcard{}} & vcard-temp (\xepref{0054}) & \\
|
\hline \ahrefloc{modvcard}{\modvcard{}} & vcard-temp (\xepref{0054}) & \\
|
||||||
\hline \ahrefloc{modvcardldap}{\modvcardldap{}} & vcard-temp (\xepref{0054}) & LDAP server \\
|
\hline \ahrefloc{modvcardldap}{\modvcardldap{}} & vcard-temp (\xepref{0054}) & LDAP server \\
|
||||||
\hline \ahrefloc{modvcard}{\modvcardodbc{}} & vcard-temp (\xepref{0054}) & supported DB (*) \\
|
\hline \ahrefloc{modvcardxupdate}{\modvcardxupdate{}} & vCard-Based Avatars (\xepref{0153}) & \modvcard{} \\
|
||||||
\hline \ahrefloc{modvcardxupdate}{\modvcardxupdate{}} & vCard-Based Avatars (\xepref{0153}) & \modvcard{} or \modvcardodbc{} \\
|
|
||||||
\hline \ahrefloc{modversion}{\modversion{}} & Software Version (\xepref{0092}) & \\
|
\hline \ahrefloc{modversion}{\modversion{}} & Software Version (\xepref{0092}) & \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
@ -2533,27 +2534,22 @@ The following table lists all modules included in \ejabberd{}.
|
||||||
You can see which database backend each module needs by looking at the suffix:
|
You can see which database backend each module needs by looking at the suffix:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item No suffix, this means that the modules uses Erlang's built-in database
|
\item No suffix, this means that the modules uses Erlang's built-in database
|
||||||
Mnesia as backend.
|
Mnesia as backend, or in some cases it can be configured to use ODBC.
|
||||||
\item `\_odbc', this means that the module needs a supported database
|
\item `\_odbc', this means that the module needs a supported database
|
||||||
(see~\ref{database}) as backend.
|
(see~\ref{database}) as backend.
|
||||||
\item `\_ldap', this means that the module needs an LDAP server as backend.
|
\item `\_ldap', this means that the module needs an LDAP server as backend.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
If you want to,
|
Those modules accept the option \term{\{backend, mnesia|odbc\}},
|
||||||
it is possible to use a relational database to store pieces of
|
and can store the tables in the configured backend:
|
||||||
information. You can do this by changing the module name to a name with an
|
|
||||||
\term{\_odbc} suffix in \ejabberd{} config file. You can use a relational
|
|
||||||
database for the following data:
|
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Last connection date and time: Use \term{mod\_last\_odbc} instead of
|
\item \ahrefloc{modlast}{\modlast{}}: Last connection date and time
|
||||||
\term{mod\_last}.
|
\item \ahrefloc{modoffline}{\modoffline{}}: Offline messages
|
||||||
\item Offline messages: Use \term{mod\_offline\_odbc} instead of
|
\item \ahrefloc{modprivacy}{\modprivacy{}}: User rules for blocking communications
|
||||||
\term{mod\_offline}.
|
\item \ahrefloc{modprivate}{\modprivate{}}: Private XML storage
|
||||||
\item Rosters: Use \term{mod\_roster\_odbc} instead of \term{mod\_roster}.
|
\item \ahrefloc{modroster}{\modroster{}}: Rosters
|
||||||
\item Users' VCARD: Use \term{mod\_vcard\_odbc} instead of \term{mod\_vcard}.
|
\item \ahrefloc{modvcard}{\modvcard{}}: Users' vCard
|
||||||
\item Private XML storage: Use \term{mod\_private\_odbc} instead of \term{mod\_private}.
|
|
||||||
\item User rules for blocking communications: Use \term{mod\_privacy\_odbc} instead of \term{mod\_privacy}.
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
You can find more
|
You can find more
|
||||||
|
@ -2992,6 +2988,7 @@ connected user was last active on the server, or to query the uptime of the
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
\begin{description}
|
\begin{description}
|
||||||
|
\backend{\term{last\_activity}}
|
||||||
\iqdiscitem{Last activity (\ns{jabber:iq:last})}
|
\iqdiscitem{Last activity (\ns{jabber:iq:last})}
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
@ -3448,6 +3445,7 @@ online again. Thus it is very similar to how email works. Note that
|
||||||
and a resource-constraint error is returned to the sender.
|
and a resource-constraint error is returned to the sender.
|
||||||
The default value is \term{max\_user\_offline\_messages}.
|
The default value is \term{max\_user\_offline\_messages}.
|
||||||
Then you can define an access rule with a syntax similar to
|
Then you can define an access rule with a syntax similar to
|
||||||
|
\backend{\term{offline\_msg}}
|
||||||
\term{max\_user\_sessions} (see \ref{configmaxsessions}).
|
\term{max\_user\_sessions} (see \ref{configmaxsessions}).
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
@ -3537,6 +3535,7 @@ their \XMPP{} client, they will be able to:
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
\begin{description}
|
\begin{description}
|
||||||
|
\backend{\term{privacy\_default\_list}, \term{privacy\_list} and \term{privacy\_list\_data}}
|
||||||
\iqdiscitem{Blocking Communication (\ns{jabber:iq:privacy})}
|
\iqdiscitem{Blocking Communication (\ns{jabber:iq:privacy})}
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
@ -3553,6 +3552,7 @@ of client-specific preferences; another is Bookmark Storage (\xepref{0048}).
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
\begin{description}
|
\begin{description}
|
||||||
|
\backend{\term{private\_storage}}
|
||||||
\iqdiscitem{Private XML Storage (\ns{jabber:iq:private})}
|
\iqdiscitem{Private XML Storage (\ns{jabber:iq:private})}
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
@ -3812,6 +3812,7 @@ It also supports Roster Versioning (\xepref{0237}).
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
\begin{description}
|
\begin{description}
|
||||||
|
\backend{\term{rosteritem} and \term{rostergroup}}
|
||||||
\iqdiscitem{Roster Management (\ns{jabber:iq:roster})}
|
\iqdiscitem{Roster Management (\ns{jabber:iq:roster})}
|
||||||
\titem{\{versioning, false|true\}} \ind{options!versioning}Enables
|
\titem{\{versioning, false|true\}} \ind{options!versioning}Enables
|
||||||
Roster Versioning.
|
Roster Versioning.
|
||||||
|
@ -4059,6 +4060,7 @@ these users. Moreover, it enables the server to send its vCard when queried.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
\begin{description}
|
\begin{description}
|
||||||
|
\backend{\term{vcard}}
|
||||||
\hostitem{vjud}
|
\hostitem{vjud}
|
||||||
\iqdiscitem{\ns{vcard-temp}}
|
\iqdiscitem{\ns{vcard-temp}}
|
||||||
\titem{\{search, true|false\}}\ind{options!search}This option specifies whether the search
|
\titem{\{search, true|false\}}\ind{options!search}This option specifies whether the search
|
||||||
|
@ -4076,7 +4078,6 @@ Options:
|
||||||
\titem{\{search\_all\_hosts, true|false\}}\ind{options!search\_all\_hosts}If this option is set
|
\titem{\{search\_all\_hosts, true|false\}}\ind{options!search\_all\_hosts}If this option is set
|
||||||
to \term{true}, search operations will apply to all virtual hosts. Otherwise
|
to \term{true}, search operations will apply to all virtual hosts. Otherwise
|
||||||
only the current host will be searched. The default value is \term{true}.
|
only the current host will be searched. The default value is \term{true}.
|
||||||
This option is available in \modvcard, but not available in \modvcardodbc.
|
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue