- Fixed field declaration for PostgreSQL 7.4
[gnucomo.git] / src / database / create.sql
index 3ce7098..99f9561 100644 (file)
 -- DBA create the database and give access permissions.
 --
 --  $Log: create.sql,v $
---  Revision 1.16  2003-08-16 14:29:02  arjen
+--  Revision 1.19  2005-06-04 07:09:47  arjen
+--  - Fixed field declaration for PostgreSQL 7.4
+--  - New tables: log_abuse, object_abuse and service_pattern
+--  - Added general service patterns in the service 'ANY'
+--  - Added new issue types.
+--
+--  Revision 1.18  2003/12/03 08:06:57  arjen
+--  Changed the type of log_adv_daemon_email.delay and log_adv_daemon_email.xdelay
+--  from time to interval. These delays can be more than 24 hours.
+--
+--  Revision 1.17  2003/09/02 12:49:47  arjen
+--  BUGFIX: Secondary indices on log_notification were unique.
+--  Additional information in the 'usr' table: 'display_name' and 'email'.
+--  Added new issues and services.
+--
+--  Revision 1.16  2003/08/16 14:29:02  arjen
 --  Fixed a few typos.
 --
 --  Revision 1.15  2003/08/05 07:43:24  arjen
@@ -102,7 +117,7 @@ CREATE UNIQUE INDEX act_actionname ON "action" USING btree (actionname);
 
 CREATE INDEX act_statuscode ON "action" USING btree (statuscode);
 
-SELECT setval ('"action_actionid_seq"', 19, true);
+SELECT setval ('"action_actionid_seq"', 21, true);
 
 --
 --
@@ -146,7 +161,7 @@ CREATE TABLE "db_value"
 
 
 COPY "db_value" FROM stdin;
-db_version     41
+db_version     48
 gcm_daemon_version     5
 log_processing 0
 last_notification      0
@@ -205,6 +220,13 @@ CREATE INDEX log_processed ON log USING btree (processed);
 SELECT setval ('"log_logid_seq"', 1, false);
 
 
+CREATE TABLE log_abuse
+(
+        logid      bigint,
+       objectid   bigint,
+        source     inet
+);
+
 --
 --
 
@@ -270,8 +292,8 @@ CREATE TABLE log_adv_daemon_email
      external_messageid   TEXT,
      to_email             TEXT,
      from_email           TEXT,
-     delay                TIME,
-     xdelay               TIME,
+     delay                interval,
+     xdelay               interval,
      mailer               TEXT,
      status               TEXT,
      pid                  INT,
@@ -321,9 +343,9 @@ CREATE TABLE "log_notification"
 
 CREATE UNIQUE INDEX lon_pk ON log_notification USING btree (notificationid, logid);
 
-CREATE UNIQUE INDEX lon_notificationid ON log_notification USING btree (notificationid);
+CREATE INDEX lon_notificationid ON log_notification USING btree (notificationid);
 
-CREATE UNIQUE INDEX lon_logid ON log_notification USING btree (logid);
+CREATE INDEX lon_logid ON log_notification USING btree (logid);
 
 --
 --
@@ -375,7 +397,7 @@ CREATE TABLE notification_check
      checkname               TEXT,
      description             TEXT,
      time_between_executions INTERVAL, 
-     last_execution          DATETIME,
+     last_execution          timestamp,
      execution_counter       BIGINT,
      notificationcounter     BIGINT,
      decreasinglist          BOOLEAN default false,
@@ -478,6 +500,19 @@ SELECT setval ('"object_objectid_seq"', 1, false);
 --
 --
 
+CREATE TABLE "object_abuse"
+(
+       objectid   bigint,
+        source     inet,
+        nr_abuses  integer,
+        status     text,
+
+        primary key (objectid, source)
+);
+
+--
+--
+
 CREATE TABLE "object_issue"
 (
        "objectid" bigint,
@@ -669,12 +704,40 @@ kernel    kernel  1       5
 sshd   sshd    1       5
 su     su      1       5
 syslogd        syslogd 1       5
+CROND  Cron Daemon     1       5
+gnucomo        Gnucomo Daemon  1       5
+sendmail       Mail Transport Agent    1       5
+dhcpd  DHCP Daemon     1       5
+rpc    NFS Services    1       5
+named  DNS Services    1       5
+xinetd Internet Daemon 1       5
+ipop   Post Office Protocol    1       5
+mgetty Serial port login and fax       1       5
+login  User login      1       5
+pam    Authentication modules  1       5
+modprobe       Kernel modules  1       5
 \.
 
 CREATE UNIQUE INDEX ser_pk ON service USING btree (servicecode);
 
 CREATE UNIQUE INDEX ser_servicename ON service USING btree (servicename);
 
+CREATE TABLE service_pattern
+(
+      service   text,
+      rank      int,
+      pattern   text,
+      action    text,
+      argument  text,
+
+      primary key (service, rank)
+);
+
+INSERT INTO service_pattern VALUES ('ANY', 999999, '.+', 'notify', 'unmatched log');
+INSERT INTO service_pattern VALUES ('ANY', 999990, '[Ee][Rr][Rr][Oo][Rr]', 'notify', 'Error detected');
+INSERT INTO service_pattern VALUES ('ANY', 999991, '[Ff][Aa][Ii][Ll]', 'notify', 'Failure detected');
+INSERT INTO service_pattern VALUES ('ANY', 999992, '[Ww][Aa][Rr][Nn]', 'notify', 'Warning detected');
+
 --
 
 CREATE TABLE "status"
@@ -734,10 +797,17 @@ CREATE TABLE "type_of_issue"
 
 
 COPY "type_of_issue" FROM stdin;
-1      manual entry    4       A manual entry of a notification        t
-2      parameter created       3       A new parameter was created     t
-3      property modified       3       The STATIC property of a parameter was modified t
-4      parameter removed       3       A parameter was removed t
+1      manual entry    4       A manual entry of a notification        t       t       1       \N      \N
+2      parameter created       3       A new parameter was created     t       t       1       \N      \N
+3      property modified       3       The STATIC property of a parameter was modified t       t       1       \N      \N
+4      parameter removed       3       A parameter was removed t       t       1       \N      \N
+5      service unknown 5       Service in log entry is unknown t       t       1       \N      \N
+6      service not used        5       Service in log entry is not used        t       t       1       \N      \N
+7      abuses exceeded 5       Abuse treshold exceeded from an IP address      t       t       1       \N      \N
+8      unmatched log   5       Log entries could not be matched        t       t       1       \N      \N
+9      Error detected  5       An Error is reported in the log t       t       1       \N      \N
+9      Failure detected        5       A Failure is reported in the log        t       t       1       \N      \N
+10     Warning detected        3       A Warning is reported in the log        t       t       1       \N      \N
 \.
 
 CREATE UNIQUE INDEX type_of_issue_type_of_issue_key ON type_of_issue USING btree (type_of_issueid);
@@ -746,7 +816,7 @@ CREATE UNIQUE INDEX toi_name ON type_of_issue USING btree (name);
 
 CREATE INDEX toi_active ON type_of_issue USING btree (active);
 
-SELECT setval ('"type_of_issue_type_of_issue_seq"', 4, true);
+SELECT setval ('"type_of_issue_type_of_issue_seq"', 6, true);
 
 --
 --
@@ -756,7 +826,9 @@ CREATE TABLE "usr"
        "username" text NOT NULL,
        "active_sessionid" bigint,
        "account_active" boolean,
-       "security_level" integer
+       "security_level" integer,
+        display_name     text,
+        email            text
 );
 
 CREATE UNIQUE INDEX usr_username ON usr USING btree (username);
@@ -781,13 +853,16 @@ GRANT SELECT ON history TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON log TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON log_adv TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON log_adv_daemon TO GROUP view, GROUP ops, GROUP admin;
+GRANT SELECT ON log_adv_daemon_email TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON log_adv_kernel_network TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON log_notification TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON notification TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON object TO GROUP view, GROUP ops, GROUP admin;
+GRANT SELECT ON object_abuse TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON object_issue TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON object_priority TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON object_service TO GROUP view, GROUP ops, GROUP admin;
+GRANT SELECT ON object_statistics TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON object_user TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON parameter TO GROUP view, GROUP ops, GROUP admin;
 GRANT SELECT ON parameter_class TO GROUP view, GROUP ops, GROUP admin;
@@ -805,6 +880,9 @@ GRANT UPDATE ON notification TO GROUP ops, GROUP admin;
 GRANT INSERT ON object TO GROUP admin;
 GRANT UPDATE ON object TO GROUP ops, GROUP admin;
 GRANT DELETE ON object TO GROUP admin;
+GRANT INSERT ON object_abuse TO GROUP admin;
+GRANT UPDATE ON object_abuse TO GROUP ops, GROUP admin;
+GRANT DELETE ON object_abuse TO GROUP admin;
 GRANT UPDATE ON usr TO GROUP view, GROUP ops, GROUP admin;
 GRANT INSERT ON usr TO GROUP admin;
 GRANT DELETE ON usr TO GROUP admin;