909
contributi
Riga 74: | Riga 74: | ||
</pre> | </pre> | ||
==Popolamento di Mysql== | ==Database e utenti== | ||
L'obiettivo è ottenere la seguente configurazione: | |||
* Database: mailserver | |||
* Utente: mailuser (con permessi limitati) | |||
* Utente: mailadmin (con permessi in scrittura e lettura). Non è obbligatorio ma IMO consigliato per la gestione via interfaccia web degli account. | |||
Creiamo il database: | |||
<pre>mysqladmin -u root -p create mailserver</pre> | |||
Creiamo l'utente per postfix (con permessi limitati): | |||
<pre> | |||
# mysql -u root -p | |||
mysql> GRANT SELECT ON mailserver.* | |||
TO 'mailuser'@'127.0.0.1' | |||
IDENTIFIED BY 'mailuser2009'; | |||
Query OK, 0 rows affected (0.00 sec) | |||
mysql> flush privileges; | |||
Query OK, 0 rows affected (0.00 sec) | |||
mysql> exit | |||
Bye | |||
</pre> | |||
==Creazione Tabelle== | |||
<pre> | |||
# mysql -p mailserver | |||
mysql> | |||
CREATE TABLE `virtual_domains` ( | |||
`id` int(11) NOT NULL auto_increment, | |||
`name` varchar(50) NOT NULL, | |||
PRIMARY KEY (`id`) | |||
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |||
mysql> | |||
CREATE TABLE `virtual_users` ( | |||
`id` int(11) NOT NULL auto_increment, | |||
`domain_id` int(11) NOT NULL, | |||
`password` varchar(32) NOT NULL, | |||
`email` varchar(100) NOT NULL, | |||
PRIMARY KEY (`id`), | |||
UNIQUE KEY `email` (`email`), | |||
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE | |||
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |||
mysql> | |||
CREATE TABLE IF NOT EXISTS `virtual_aliases` ( | |||
`id` int(11) NOT NULL auto_increment, | |||
`domain_id` int(11) NOT NULL, | |||
`source` varchar(100) NOT NULL, | |||
`destination` varchar(100) NOT NULL, | |||
PRIMARY KEY (`id`), | |||
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE | |||
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |||
</pre> | |||
Sono state impostate alcune ''foreign keys'': servono per collegare i record delle tabelle <code>virtual_aliases</code> e <code>virtual_users</code> con i record nella tabella <code>virtual_domains</code>. Questo ci permetterà di mantenere consistenti i dati nel database, perchè non potremo creare utenti virtuali o alias virtuali non collegati ad alcun dominio virtuale.<br/> | |||
Il suffisso <code>ON DELETE CASCADE</code> significa che rimuovendo un dominio virtuale saranno cancellate anche tutti gli utenti virtuali e gli alias collegati al dominio, evitando di lasciare nel database dei record orfani. | |||
===Popolamento di Mysql=== | |||
Creiamo e popoliamo in mysql le tre tabelle di cui sopra. | Creiamo e popoliamo in mysql le tre tabelle di cui sopra. | ||
<pre> | <pre> |
contributi