| 1 | # This file is opened as root, so it should be owned by root and mode 0600. |
|---|
| 2 | # |
|---|
| 3 | # http://wiki.dovecot.org/AuthDatabase/SQL |
|---|
| 4 | # |
|---|
| 5 | # For the sql passdb module, you'll need a database with a table that |
|---|
| 6 | # contains fields for at least the username and password. If you want to |
|---|
| 7 | # use the user@domain syntax, you might want to have a separate domain |
|---|
| 8 | # field as well. |
|---|
| 9 | # |
|---|
| 10 | # If your users all have the same uig/gid, and have predictable home |
|---|
| 11 | # directories, you can use the static userdb module to generate the home |
|---|
| 12 | # dir based on the username and domain. In this case, you won't need fields |
|---|
| 13 | # for home, uid, or gid in the database. |
|---|
| 14 | # |
|---|
| 15 | # If you prefer to use the sql userdb module, you'll want to add fields |
|---|
| 16 | # for home, uid, and gid. Here is an example table: |
|---|
| 17 | # |
|---|
| 18 | # CREATE TABLE users ( |
|---|
| 19 | # username VARCHAR(128) NOT NULL, |
|---|
| 20 | # domain VARCHAR(128) NOT NULL, |
|---|
| 21 | # password VARCHAR(64) NOT NULL, |
|---|
| 22 | # home VARCHAR(255) NOT NULL, |
|---|
| 23 | # uid INTEGER NOT NULL, |
|---|
| 24 | # gid INTEGER NOT NULL, |
|---|
| 25 | # active CHAR(1) DEFAULT 'Y' NOT NULL |
|---|
| 26 | # ); |
|---|
| 27 | |
|---|
| 28 | # Database driver: mysql, pgsql, sqlite |
|---|
| 29 | driver = mysql |
|---|
| 30 | |
|---|
| 31 | # Database connection string. This is driver-specific setting. |
|---|
| 32 | # |
|---|
| 33 | # pgsql: |
|---|
| 34 | # For available options, see the PostgreSQL documention for the |
|---|
| 35 | # PQconnectdb function of libpq. |
|---|
| 36 | # |
|---|
| 37 | # mysql: |
|---|
| 38 | # Basic options emulate PostgreSQL option names: |
|---|
| 39 | # host, port, user, password, dbname |
|---|
| 40 | # |
|---|
| 41 | # But also adds some new settings: |
|---|
| 42 | # client_flags - See MySQL manual |
|---|
| 43 | # ssl_ca, ssl_ca_path - Set either one or both to enable SSL |
|---|
| 44 | # ssl_cert, ssl_key - For sending client-side certificates to server |
|---|
| 45 | # ssl_cipher - Set minimum allowed cipher security (default: HIGH) |
|---|
| 46 | # option_file - Read options from the given file instead of |
|---|
| 47 | # the default my.cnf location |
|---|
| 48 | # option_group - Read options from the given group (default: client) |
|---|
| 49 | # |
|---|
| 50 | # You can connect to UNIX sockets by using host: host=/var/run/mysqld/mysqld.sock |
|---|
| 51 | # Note that currently you can't use spaces in parameters. |
|---|
| 52 | # |
|---|
| 53 | # MySQL supports multiple host parameters for load balancing / HA. |
|---|
| 54 | # |
|---|
| 55 | # sqlite: |
|---|
| 56 | # The path to the database file. |
|---|
| 57 | # |
|---|
| 58 | # Examples: |
|---|
| 59 | # connect = host=192.168.1.1 dbname=users |
|---|
| 60 | # connect = host=sql.example.com dbname=virtual user=virtual password=blarg |
|---|
| 61 | # connect = /etc/dovecot/authdb.sqlite |
|---|
| 62 | # |
|---|
| 63 | connect = host=%%dbhost%% dbname=%%dbname%% user=%%db_mail_user%% password=%%db_mail_pwd%% |
|---|
| 64 | |
|---|
| 65 | # Default password scheme. |
|---|
| 66 | # |
|---|
| 67 | # List of supported schemes is in |
|---|
| 68 | # http://wiki.dovecot.org/Authentication/PasswordSchemes |
|---|
| 69 | # |
|---|
| 70 | default_pass_scheme = MD5 |
|---|
| 71 | |
|---|
| 72 | # passdb query to retrieve the password. It can return fields: |
|---|
| 73 | # password - The user's password. This field must be returned. |
|---|
| 74 | # user - user@domain from the database. Needed with case-insensitive lookups. |
|---|
| 75 | # username and domain - An alternative way to represent the "user" field. |
|---|
| 76 | # |
|---|
| 77 | # The "user" field is often necessary with case-insensitive lookups to avoid |
|---|
| 78 | # e.g. "name" and "nAme" logins creating two different mail directories. If |
|---|
| 79 | # your user and domain names are in separate fields, you can return "username" |
|---|
| 80 | # and "domain" fields instead of "user". |
|---|
| 81 | # |
|---|
| 82 | # The query can also return other fields which have a special meaning, see |
|---|
| 83 | # http://wiki.dovecot.org/PasswordDatabase/ExtraFields |
|---|
| 84 | # |
|---|
| 85 | # Commonly used available substitutions (see http://wiki.dovecot.org/Variables |
|---|
| 86 | # for full list): |
|---|
| 87 | # %u = entire user@domain |
|---|
| 88 | # %n = user part of user@domain |
|---|
| 89 | # %d = domain part of user@domain |
|---|
| 90 | # |
|---|
| 91 | # Note that these can be used only as input to SQL query. If the query outputs |
|---|
| 92 | # any of these substitutions, they're not touched. Otherwise it would be |
|---|
| 93 | # difficult to have eg. usernames containing '%' characters. |
|---|
| 94 | # |
|---|
| 95 | # Example: |
|---|
| 96 | # password_query = SELECT userid AS user, pw AS password \ |
|---|
| 97 | # FROM users WHERE userid = '%u' AND active = 'Y' |
|---|
| 98 | # |
|---|
| 99 | #password_query = \ |
|---|
| 100 | # SELECT username, domain, password \ |
|---|
| 101 | # FROM users WHERE username = '%n' AND domain = '%d' |
|---|
| 102 | |
|---|
| 103 | # userdb query to retrieve the user information. It can return fields: |
|---|
| 104 | # uid - System UID (overrides mail_uid setting) |
|---|
| 105 | # gid - System GID (overrides mail_gid setting) |
|---|
| 106 | # home - Home directory |
|---|
| 107 | # mail - Mail location (overrides mail_location setting) |
|---|
| 108 | # |
|---|
| 109 | # None of these are strictly required. If you use a single UID and GID, and |
|---|
| 110 | # home or mail directory fits to a template string, you could use userdb static |
|---|
| 111 | # instead. For a list of all fields that can be returned, see |
|---|
| 112 | # http://wiki.dovecot.org/UserDatabase/ExtraFields |
|---|
| 113 | # |
|---|
| 114 | # Examples: |
|---|
| 115 | # user_query = SELECT home, uid, gid FROM users WHERE userid = '%u' |
|---|
| 116 | # user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u' |
|---|
| 117 | # user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u' |
|---|
| 118 | # |
|---|
| 119 | user_query = SELECT mailbox.path AS home, domaines.compte AS uid, 1998 AS gid FROM mailbox JOIN address ON address.id = mailbox.address_id JOIN domaines on domaines.id = address.domain_id WHERE address.address = '%n' |
|---|
| 120 | |
|---|
| 121 | # If you wish to avoid two SQL lookups (passdb + userdb), you can use |
|---|
| 122 | # userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll |
|---|
| 123 | # also have to return userdb fields in password_query prefixed with "userdb_" |
|---|
| 124 | # string. For example: |
|---|
| 125 | password_query = SELECT user, password, userdb_home, userdb_uid, 1998 AS userdb_gid,userdb_quota_rule FROM dovecot_view where user= '%u'; |
|---|
| 126 | |
|---|