root/alternc/tags/0.9.6/install/mysql.sql

Revision 1702, 16.4 kB (checked in by nahuel, 2 years ago)

Corrections des quotas par default pour mysql_users
Closes: #670

Line 
1 #
2 # $Id: mysql.sql,v 1.39 2006/02/17 15:15:54 olivier Exp $
3 # ----------------------------------------------------------------------
4 # AlternC - Web Hosting System
5 # Copyright (C) 2006 Le réseau Koumbit Inc.
6 # http://koumbit.org/
7 # Copyright (C) 2002 by the AlternC Development Team.
8 # http://alternc.org/
9 # ----------------------------------------------------------------------
10 # Based on:
11 # Valentin Lacambre's web hosting softwares: http://altern.org/
12 # ----------------------------------------------------------------------
13 # LICENSE
14 #
15 # This program is free software; you can redistribute it and/or
16 # modify it under the terms of the GNU General Public License (GPL)
17 # as published by the Free Software Foundation; either version 2
18 # of the License, or (at your option) any later version.
19 #
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23 # GNU General Public License for more details.
24 #
25 # To read the license please visit http://www.gnu.org/copyleft/gpl.html
26 # ----------------------------------------------------------------------
27 # Original Author of file: Benjamin Sonntag
28 # Purpose of file: Create the basic structure for the mysql system db
29 # ----------------------------------------------------------------------
30 #
31
32 ######################################################################
33 # STRUCTURE DES TABLES D'ALTERNC
34 #
35 # IMPORTANT: lorsque la structure de ces tables est modifiée, le
36 # fichier upgrades/<version>.sql doit être modifié (ou créé!) pour que
37 # les installations courantes soient mises à jour. <version> est ici
38 # le prochain numéro de version d'AlternC. Voir upgrades/README pour
39 # plus de détails.
40 #########################################################################
41
42 CREATE TABLE IF NOT EXISTS `slaveip` (
43 `ip` VARCHAR( 15 ) NOT NULL ,
44 `class` TINYINT NOT NULL ,
45 PRIMARY KEY ( `ip` , `class` )
46 ) COMMENT = 'Allowed ip for slave dns managment';
47
48 CREATE TABLE IF NOT EXISTS `slaveaccount` (
49 `login` VARCHAR( 64 ) NOT NULL ,
50 `pass`  VARCHAR( 64 ) NOT NULL ,
51 PRIMARY KEY ( `login` )
52 ) COMMENT = 'Allowed account for slave dns managment';
53
54 #
55 # Structure de la table mail_alias
56 #
57
58 CREATE TABLE IF NOT EXISTS `mail_alias` (
59   `mail` varchar(255) NOT NULL default '',      # Adresse email LOCALE
60   `alias` varchar(255) NOT NULL default '',     # WRAPPER
61   PRIMARY KEY  (`mail`)
62 ) TYPE=MyISAM COMMENT='Mail Alias pour postfix';
63
64
65 CREATE TABLE IF NOT EXISTS `mail_users` (
66   `uid` int(10) unsigned NOT NULL default '0',  # UID AlternC de l'utilisateur du mail
67   `alias` varchar(255) NOT NULL default '',     # Alias = Alias intermédiaire (voir domain)
68   `path` varchar(255) NOT NULL default '',      # Chemin vers le mail de l'utilisateur
69   `password` varchar(255) NOT NULL default '',  # Mot de passe crypté
70   PRIMARY KEY  (`alias`),
71   KEY `path` (`path`),
72   KEY `uid` (`uid`)
73 ) TYPE=MyISAM COMMENT='Comptes pop, wrappers, alias';
74
75
76 CREATE TABLE IF NOT EXISTS `mail_domain` (
77   `mail` varchar(255) NOT NULL default '',      # Adresse email COMPLETE (login@domaine)
78   `alias` text NOT NULL,                        # Alias intermédiaire (login_domaine) pour référence dans users
79   `uid` int(10) unsigned NOT NULL default '0',  # Numéro de l'utilisateur (alternc)
80   `pop` tinyint(4) NOT NULL default '0',        # Est-ce un compte pop ?
81   `type` tinyint(4) NOT NULL default '0',       # Je ne sais plus ...
82   PRIMARY KEY  (`mail`),
83   KEY `uid` (`uid`),
84   KEY `pop` (`pop`)
85 ) TYPE=MyISAM COMMENT='Alias en domaine pour Postfix';
86
87
88
89 #
90 # Structure de la table `browser`
91 #
92 # Cette table contient les préférences des utilisateurs dans le gestionnaire de fichiers
93
94
95 CREATE TABLE IF NOT EXISTS browser (
96   uid int(10) unsigned NOT NULL default '0',            # Numéro de l'utilisateur
97   editsizex int(10) unsigned NOT NULL default '0',      # Largeur de la zone d'edition du brouteur
98   editsizey int(10) unsigned NOT NULL default '0',      # Hauteur de la zone d'edition du brouteur
99   listmode tinyint(3) unsigned NOT NULL default '0',    # Mode de listing (1 colonne, 2 colonne, 3 colonne)
100   showicons tinyint(4) NOT NULL default '0',            # Faut-il afficher les icones (1/0)
101   downfmt tinyint(4) NOT NULL default '0',              # Format de téléchargement (zip/bz2/tgz/tar.Z)
102   createfile tinyint(4) NOT NULL default '0',           # Que fait-on après création d'un fichier (1/0)
103   showtype tinyint(4) NOT NULL default '0',             # Affiche-t-on le type mime ?
104   editor_font varchar(64) NOT NULL default '',          # Nom de la police dans l'éditeur de fichiers
105   editor_size varchar(8) NOT NULL default '',           # Taille de la police dans l'éditeur de fichiers
106   crff tinyint(4) NOT NULL default '0',                 # mémorise le dernier fichier/dossier créé (pour le bouton radio)
107   golastdir tinyint(4) NOT NULL default '0',            # Faut-il aller au dernier dossier ou au dossier racine dans le brouteur ?
108   lastdir varchar(255) NOT NULL default '',             # Dernier dossier visité.
109   PRIMARY KEY  (uid)
110 ) TYPE=MyISAM COMMENT='Préférences du gestionnaire de fichiers';
111
112
113 #
114 # Structure de la table `chgmail`
115 #
116 # Cette table contient les demandes de changements de mail pour les membres
117
118 CREATE TABLE IF NOT EXISTS chgmail (
119   uid int(10) unsigned NOT NULL default '0',            # Numéro de l'utilisateur
120   cookie varchar(20) NOT NULL default '',               # Cookie du mail
121   ckey varchar(6) NOT NULL default '',                  # Clé de vérif
122   mail varchar(128) NOT NULL default '',                # Nouvel Email
123   ts bigint(20) unsigned NOT NULL default '0',          # Timestamp de la demande
124   PRIMARY KEY  (uid)
125 ) TYPE=MyISAM COMMENT='Demandes de changements de mail en cours';
126
127 #
128 # Structure de la table `db`
129 #
130 # Contient les bases mysql des membres, + login / pass en clair
131
132 CREATE TABLE IF NOT EXISTS db (
133   uid int(10) unsigned NOT NULL default '0',            # Numéro de l'utilisateur
134   login varchar(16) NOT NULL default '',                # Nom d'utilisateur mysql
135   pass varchar(16) NOT NULL default '',                 # Mot de passe mysql
136   db varchar(64) NOT NULL default '',                   # Base de données concernée
137   bck_mode tinyint(3) unsigned NOT NULL default '0',    # Mode de backup (0/non 1/Daily 2/Weekly)
138   bck_history tinyint(3) unsigned NOT NULL default '0', # Nombre de backup à conserver ?
139   bck_gzip tinyint(3) unsigned NOT NULL default '0',    # Faut-il compresser les backups ?
140   bck_dir varchar(255) NOT NULL default '',             # Où stocke-t-on les backups sql ?
141   KEY uid (uid)
142 ) TYPE=MyISAM COMMENT='Bases MySQL des membres';
143
144 #
145 # Structure de la table `domaines`
146 #
147 # Liste des domaines hébergés
148
149 CREATE TABLE IF NOT EXISTS domaines (
150   compte int(10) unsigned NOT NULL default '0',
151   domaine varchar(64) NOT NULL default '',
152   mx varchar(64) default NULL,
153   gesdns int(1) NOT NULL default '1',
154   gesmx int(1) NOT NULL default '1',
155   noerase tinyint(4) NOT NULL default '0',
156   PRIMARY KEY  (compte,domaine)
157 ) TYPE=MyISAM;
158
159 #
160 # Structure de la table `domaines_standby`
161 #
162 # Liste temporaire utilisée par le cron des domaines
163
164 CREATE TABLE IF NOT EXISTS domaines_standby (
165   compte int(10) unsigned NOT NULL default '0',
166   domaine varchar(64) NOT NULL default '',
167   mx varchar(64) default NULL,
168   gesdns int(1) NOT NULL default '1',
169   gesmx int(1) NOT NULL default '1',
170   action int(1) NOT NULL default '0',
171   PRIMARY KEY  (compte,domaine,action)
172 ) TYPE=MyISAM;
173
174 #
175 # Structure de la table `ftpusers`
176 #
177 # Comptes ftp des membres
178
179 CREATE TABLE IF NOT EXISTS ftpusers (
180   id int(10) unsigned NOT NULL auto_increment,
181   name varchar(64) NOT NULL default '',
182   password varchar(32) NOT NULL default '',
183   encrypted_password VARCHAR(32) default NULL,
184   homedir varchar(128) NOT NULL default '',
185   uid int(10) unsigned NOT NULL default '0',
186   PRIMARY KEY  (id),
187   UNIQUE KEY name (name),
188   KEY homedir (homedir),
189   KEY mid (uid)
190 ) TYPE=MyISAM;
191
192 #
193 # Structure de la table `local`
194 #
195 # Champs utilisables par l'hébergeur pour associer des données locales aux membres.
196
197 CREATE TABLE IF NOT EXISTS local (
198   uid int(10) unsigned NOT NULL default '0',
199   nom varchar(128) NOT NULL default '',
200   prenom varchar(128) NOT NULL default '',
201   PRIMARY KEY  (uid)
202 ) TYPE=MyISAM COMMENT='Parametres Locaux des membres';
203
204 #
205 # Structure de la table `membres`
206 #
207 # Liste des membres
208
209 CREATE TABLE IF NOT EXISTS membres (
210   uid int(10) unsigned NOT NULL auto_increment,         # Numéro du membre (GID)
211   login varchar(128) NOT NULL default '',               # Nom d'utilisateur
212   pass varchar(64) NOT NULL default '',                 # Mot de passe
213   enabled tinyint(4) NOT NULL default '1',              # Le compte est-il actif ?
214   su tinyint(4) NOT NULL default '0',                   # Le compte est-il super-admin ?
215   mail varchar(128) NOT NULL default '',                # Adresse email du possesseur
216   lastaskpass bigint(20) unsigned default '0',          # Date de dernière demande du pass par mail
217   show_help tinyint(4) NOT NULL default '1',            # Faut-il afficher l'aide dans le bureau
218   lastlogin datetime NOT NULL default '0000-00-00 00:00:00',    # Date du dernier login
219   lastfail tinyint(4) NOT NULL default '0',             # Nombre d'échecs depuis le dernier login
220   lastip varchar(255) NOT NULL default '',              # Nom DNS du client au dernier login
221   creator int(10) unsigned default '0',                 # Qui a créé le compte (quel uid admin)
222   canpass tinyint(4) default '1',                       # L'utilisateur peut-il changer son pass.
223   warnlogin tinyint(4) default '0',                     # TODO L'utilisateur veut-il recevoir un mail quand on se loggue sur son compte ?
224   warnfailed tinyint(4) default '0',                    # TODO L'utilisateur veut-il recevoir un mail quand on tente de se logguer sur son compte ?
225   admlist tinyint(4) default '0',                       # Mode d'affichage de la liste des membres pour les super admins
226   type varchar(128) default 'default',
227   created datetime default NULL,
228   renewed datetime default NULL,
229   duration int(4) default NULL,
230   PRIMARY KEY  (uid),
231   UNIQUE KEY k_login (login)
232 ) TYPE=MyISAM COMMENT='Liste des membres du serveur';
233
234 #
235 # Structure de la table `quotas`
236 #
237 # Listes des quotas des membres
238
239 CREATE TABLE IF NOT EXISTS quotas (
240   uid int(10) unsigned NOT NULL default '0',            # Numéro GID du membre concerné
241   name varchar(64) NOT NULL default '',                 # Nom du quota
242   total int(11) NOT NULL default '0',                   # Quota total (maximum autorisé)
243   PRIMARY KEY  (uid,name)
244 ) TYPE=MyISAM COMMENT='Quotas des Membres';
245
246 #
247 # Structure de la table `sessions`
248 #
249 # Sessions actives sur le bureau
250
251 CREATE TABLE IF NOT EXISTS sessions (
252   sid varchar(32) NOT NULL default '',                  # Cookie de session (md5)
253   uid int(10) unsigned NOT NULL default '0',            # UID du membre concerné
254   ip int(10) unsigned NOT NULL default '0',             # Adresse IP de la connexion
255   ts timestamp(14) NOT NULL
256 ) TYPE=MyISAM COMMENT='Session actives sur le bureau';
257
258 #
259 # Structure de la table `sub_domaines`
260 #
261 # Sous-domaines des membres
262
263 CREATE TABLE IF NOT EXISTS sub_domaines (
264   compte int(10) unsigned NOT NULL default '0',
265   domaine varchar(64) NOT NULL default '',
266   sub varchar(100) NOT NULL default '',
267   valeur varchar(255) default NULL,
268   type int(1) NOT NULL default '0',
269   PRIMARY KEY  (compte,domaine,sub)
270 ) TYPE=MyISAM;
271
272 #
273 # Structure de la table `sub_domaines_standby`
274 #
275 # Table temporaire des sous-domaines des membres utilisée par le cron
276
277 CREATE TABLE IF NOT EXISTS sub_domaines_standby (
278   compte int(10) unsigned NOT NULL default '0',
279   domaine varchar(64) NOT NULL default '',
280   sub varchar(100) NOT NULL default '',
281   valeur varchar(255) default NULL,
282   type int(1) NOT NULL default '0',
283   action int(1) NOT NULL default '0',
284   PRIMARY KEY  (compte,domaine,sub,action)
285 ) TYPE=MyISAM;
286
287 #
288 # Structure de la table `stats2`
289 #
290 # Liste des jeux de stat brutes demandées sur le serveur
291
292 CREATE TABLE IF NOT EXISTS stats2 (
293   id int(10) unsigned NOT NULL auto_increment,  # Numéro du jeu de stat brut
294   mid int(10) unsigned NOT NULL default '0',    # Numéro de l'utilisateur
295   hostname varchar(255) NOT NULL default '',    # Domaine concerné
296   folder varchar(255) NOT NULL default '',      # Dossier de stockage des logs
297   PRIMARY KEY  (id),
298   KEY mid (mid)
299 ) TYPE=MyISAM COMMENT='Statistiques apaches brutes';
300
301
302 #
303 # Structure de la table `defquotas`
304 #
305 # Quotas par défaut pour les services
306
307 CREATE TABLE IF NOT EXISTS defquotas (
308   quota varchar(128),                           # Nom du quota
309   value bigint(20) unsigned default '0',        # Valeur du quota
310   type  varchar(128) default 'default',         # Type de compte associée à ce quota
311   PRIMARY KEY (quota,type)
312 ) TYPE=MyISAM;
313
314 #
315 # Quotas par defaut pour les nouveaux membres
316 #
317 # Ces quotas par defaut sont redefinissables dans l'interface web
318
319 INSERT IGNORE INTO defquotas (quota,value) VALUES ('dom',1);
320 INSERT IGNORE INTO defquotas (quota,value) VALUES ('mail',10);
321 INSERT IGNORE INTO defquotas (quota,value) VALUES ('ftp',2);
322 INSERT IGNORE INTO defquotas (quota,value) VALUES ('stats',1);
323 INSERT IGNORE INTO defquotas (quota,value) VALUES ('mysql',1);
324 INSERT IGNORE INTO defquotas (quota,value) VALUES ('mysql_users',1);
325
326
327 #
328 # Structure de la table `forbidden_domains`
329 #
330 # Liste des domaines explicitement interdits sur le serveur :
331
332 CREATE TABLE IF NOT EXISTS forbidden_domains (
333   domain varchar(255) NOT NULL default '',
334   PRIMARY KEY  (domain)
335 ) TYPE=MyISAM COMMENT='forbidden domains to install';
336
337 #
338 # Contenu de la table `forbidden_domains`
339 #
340
341 # Registries :
342 INSERT IGNORE INTO forbidden_domains VALUES ('afilias.net');
343 INSERT IGNORE INTO forbidden_domains VALUES ('afnic.fr');
344 INSERT IGNORE INTO forbidden_domains VALUES ('dns.be');
345 INSERT IGNORE INTO forbidden_domains VALUES ('internic.net');
346 INSERT IGNORE INTO forbidden_domains VALUES ('netsol.com');
347 INSERT IGNORE INTO forbidden_domains VALUES ('nic.biz');
348 INSERT IGNORE INTO forbidden_domains VALUES ('nic.cx');
349 INSERT IGNORE INTO forbidden_domains VALUES ('nic.fr');
350 INSERT IGNORE INTO forbidden_domains VALUES ('verisign.com');
351 INSERT IGNORE INTO forbidden_domains VALUES ('octopuce.com');
352 INSERT IGNORE INTO forbidden_domains VALUES ('pir.org');
353 INSERT IGNORE INTO forbidden_domains VALUES ('cira.ca');
354 # big isp :
355 INSERT IGNORE INTO forbidden_domains VALUES ('aol.com');
356 INSERT IGNORE INTO forbidden_domains VALUES ('hotmail.com');
357 INSERT IGNORE INTO forbidden_domains VALUES ('microsoft.com');
358 INSERT IGNORE INTO forbidden_domains VALUES ('sympatico.ca');
359 INSERT IGNORE INTO forbidden_domains VALUES ('tiscali.fr');
360 INSERT IGNORE INTO forbidden_domains VALUES ('voila.fr');
361 INSERT IGNORE INTO forbidden_domains VALUES ('wanadoo.fr');
362 INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.com');
363 INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.fr');
364
365 #
366 # Structure de la table `tld`
367 #
368 # Liste des tld autorisés sur ce serveur :
369
370 CREATE TABLE IF NOT EXISTS tld (
371   tld varchar(128) NOT NULL default '',         # lettres du tld (sans le .)
372   mode tinyint(4) NOT NULL default '0',         # Comment est-il autorisé ?
373   PRIMARY KEY  (tld),
374   KEY mode (mode)
375 ) TYPE=MyISAM COMMENT='TLD autorisés et comment sont-ils autorisés ? ';
376
377 #
378 # Contenu de la table `tld`
379 #
380
381 INSERT IGNORE INTO tld VALUES ('fr', 4);
382 INSERT IGNORE INTO tld VALUES ('com', 1);
383 INSERT IGNORE INTO tld VALUES ('org', 1);
384 INSERT IGNORE INTO tld VALUES ('net', 1);
385 INSERT IGNORE INTO tld VALUES ('biz', 1);
386 INSERT IGNORE INTO tld VALUES ('info', 1);
387 INSERT IGNORE INTO tld VALUES ('name', 1);
388 INSERT IGNORE INTO tld VALUES ('ca', 1);
389 INSERT IGNORE INTO tld VALUES ('it', 1);
390 INSERT IGNORE INTO tld VALUES ('ws', 1);
391 INSERT IGNORE INTO tld VALUES ('be', 1);
392 INSERT IGNORE INTO tld VALUES ('eu.org', 4);
393 INSERT IGNORE INTO tld VALUES ('cjb.net', 4);
394 INSERT IGNORE INTO tld VALUES ('asso.fr', 4);
395
396 --
397 -- Table structure for table 'variable'
398 --
399 -- Taken from http://cvs.drupal.org/viewcvs/drupal/drupal/database/database.mysql?rev=1.164&view=auto
400 --
401 -- if comment is null, then the variable is internal and will not show
402 -- up in the generic configuration panel
403 CREATE TABLE IF NOT EXISTS variable (
404   name varchar(48) NOT NULL default '',
405   value longtext NOT NULL,
406   comment mediumtext NULL,
407   PRIMARY KEY  (name),
408   KEY name (name)
409 ) TYPE=MyISAM;
410
411 -- hosting_tld: only used, for now, in bureau/admin/adm_*add.php
412 INSERT IGNORE INTO `variable` (name, value, comment) VALUES ('hosting_tld', 0,
413 'This is a FQDN that designates the main hostname of the service.
414
415 For example, hosting_tld determines in what TLD the "free" user domain
416 is created. If this is set to "example.com", a checkbox will appear in
417 the user creation dialog requesting the creator if he wants to create
418 the domain "username.example.com".
419
420 If this is set to 0 or a "false" string, it will be ignored.');
421
422 --
423 -- Table structure for table `dbusers`
424 --
425
426 CREATE TABLE IF NOT EXISTS `dbusers` (
427   `id` int(10) unsigned NOT NULL auto_increment,
428   `uid` int(10) unsigned NOT NULL default '0',
429   `name` varchar(16) NOT NULL default '',
430   KEY `id` (`id`)
431 ) TYPE=MyISAM COMMENT='Utilisateurs MySQL des membres';
432
433
434 CREATE TABLE IF NOT EXISTS `mxaccount` (
435 `login` VARCHAR( 64 ) NOT NULL ,
436 `pass`  VARCHAR( 64 ) NOT NULL ,
437 PRIMARY KEY ( `login` )
438 ) COMMENT = 'Allowed account for secondary mx managment';
439
440
441
Note: See TracBrowser for help on using the browser.