source: install/scripts/mysql.sql @ 354

Revision 354, 14.0 KB checked in by anarcat, 7 years ago (diff)

[project @ alternc: changeset 2004-06-04 11:17:50 by anonymous]
ajout du champ timestamp des sessions dans mysql.sql et upgrades -

Original author: anonymous
Date: 2004-06-04 11:17:50

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