view doc/dovecot-sql.conf @ 2754:3c3ac12be307 HEAD

Created generic asynchronous SQL API and implemented MySQL and PostgreSQL drivers. MySQL is implemented synchronously because it's API doesn't provide async way to do it. Replaced pgsql and mysql userdb/passdb with generic sql userdb/passdb.
author Timo Sirainen <tss@iki.fi>
date Sat, 16 Oct 2004 02:12:51 +0300
parents
children b69f441e3fa6
line wrap: on
line source

# For the sql passdb module, you'll need a database with a table that
# contains fields for at least the userid and password. If you want to
# use the user@domain syntax, you might want to have a separate domain
# field as well.
#
# If your users all have the same uig/gid, and have predictable home
# directories, you can use the static userdb module to generate the home
# dir based on the userid and domain. In this case, you won't need fields
# for home, uid, or gid in the database.
#
# If you prefer to use the sql userdb module, you'll want to add fields
# for home, uid, and gid. Here is an example table:
#
# CREATE TABLE users (
#     userid VARCHAR(128) NOT NULL,
#     password VARCHAR(64) NOT NULL,
#     home VARCHAR(255) NOT NULL,
#     uid INTEGER NOT NULL,
#     gid INTEGER NOT NULL,
#     active CHAR(1) DEFAULT 'Y' NOT NULL
# );

# Database driver: mysql, pgsql
#driver = 

# Database connection string. This is driver-specific setting.
#
# pgsql:
#   For available options, see the PostgreSQL documention for the
#   PQconnectdb function of libpq.
#
# mysql:
#   Basic options emulate PostgreSQL option names:
#     host, port, user, password, dbname
#
#   But also adds some new settings:
#     client_flags        - See MySQL manual
#     ssl_ca, ssl_ca_path - Set either one or both to enable SSL
#     ssl_cert, ssl_key   - For sending client-side certificates to server
#     ssl_cipher          - Set minimum allowed cipher security (default: HIGH)
# 
#   You can connect to UNIX sockets by using host: host=/var/run/mysql.sock
#   Note that currently you can't use spaces in parameters.
#
# Examples:
#   connect = host=192.168.1.1 dbname=users
#   connect = host=sql.example.com dbname=virtual user=virtual password=blarg
#
#connect = dbname=virtual user=virtual

# Default password scheme.
#
# Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT.
#
#default_pass_scheme = PLAIN-MD5

# Query to retrieve the password.
#
# The query should return one row, one column. If more than one row or column
# is returned, authentication will automatically fail.
#
# Available substitutions:
#   %u = entire userid
#   %n = user part of user@domain
#   %d = domain part of user@domain
#
# Example:
#   password_query = SELECT password FROM users WHERE userid = '%n' AND domain = '%d'
#   password_query = SELECT password FROM users WHERE userid = '%u' AND active = 'Y'
#
#password_query = SELECT password FROM users WHERE userid = '%u'

# Query to retrieve the user information.
#
# The query must return only one row. The columns to return are:
#   home - Home directory
#   mail - MAIL environment
#   system_user - System user name (for getting user's groups from /etc/group)
#   uid - System UID
#   gid - System GID
#
# Either home or mail is required. uid and gid are required. If more than one
# row is returned or there's missing fields, login will automatically fail.
#
# Examples
#   user_query = SELECT home, uid, gid FROM users WHERE userid = '%n' AND domain = '%d'
#   user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u'
#   user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u'
#
#user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'