1 --*************************************************************************
2 -- (c) Copyright 2002, De Winter Information Solutions
3 -- This is free software; you can redistribute it and/or modify it under the
4 -- terms of the GNU General Public License, see the file COPYING.
5 --*************************************************************************/
7 -- Gnucomo database creation script.
10 -- This SQL script creates the initial tables for the Gnucomo database.
11 -- Before running this script with 'psql -f', you should have your
12 -- DBA create the database and give access permissions.
14 -- $Log: create.sql,v $
15 -- Revision 1.24 2011-03-23 17:04:41 arjen
16 -- Added a new group daemon and created additional permissions to the database.
18 -- Revision 1.23 2007/11/17 09:32:24 arjen
19 -- Minor fixes to make created and upgraded databases equal.
20 -- Cleanup of database destruction script.
22 -- Revision 1.22 2007/11/03 10:30:10 arjen
23 -- Added the class definition for a filesystem parameter.
24 -- New issue type: 'property out of range'.
26 -- Revision 1.21 2007/10/23 11:25:42 arjen
27 -- Fixed the Failure and warning issues.
29 -- Revision 1.20 2007/01/11 13:47:35 arjen
30 -- Log_adv and derived tables removed.
31 -- Create notifications from log entries with pattern matching.
33 -- Revision 1.19 2005/06/04 07:09:47 arjen
34 -- - Fixed field declaration for PostgreSQL 7.4
35 -- - New tables: log_abuse, object_abuse and service_pattern
36 -- - Added general service patterns in the service 'ANY'
37 -- - Added new issue types.
39 -- Revision 1.18 2003/12/03 08:06:57 arjen
40 -- Changed the type of log_adv_daemon_email.delay and log_adv_daemon_email.xdelay
41 -- from time to interval. These delays can be more than 24 hours.
43 -- Revision 1.17 2003/09/02 12:49:47 arjen
44 -- BUGFIX: Secondary indices on log_notification were unique.
45 -- Additional information in the 'usr' table: 'display_name' and 'email'.
46 -- Added new issues and services.
48 -- Revision 1.16 2003/08/16 14:29:02 arjen
51 -- Revision 1.15 2003/08/05 07:43:24 arjen
52 -- Added index to the history table.
54 -- Revision 1.14 2003/07/09 07:14:59 arjen
55 -- New database tables: notification_check, notification_check_buffer,
56 -- notification_check_line and object_statistics.
58 -- Revision 1.13 2003/03/29 08:27:05 arjen
59 -- New columns in the table 'log_adv_daemon_email': size, pri, relay,
60 -- status_details and dsn.
61 -- Added several indices for the table 'log_adv_daemon_email'.
63 -- Revision 1.12 2003/02/21 08:38:38 arjen
64 -- Added new table to the database: log_adv_daemon_email.
66 -- Revision 1.11 2003/02/16 08:24:38 arjen
67 -- Added a new entry to the action table: Notification was displayed in the listing
69 -- Revision 1.10 2003/02/14 06:32:27 arjen
70 -- Setup the groups and database permissions. The three groups
71 -- are: view, ops and admin.
72 -- Added a new entry to the action table.
74 -- Revision 1.9 2003/02/13 08:46:54 arjen
75 -- Added log, notification and parameter counters to the 'object' table.
76 -- Counting these things at the time a user interface needs them is
77 -- too slow. Other programs, like gcm_daemon en gcm_input should prepare
78 -- these counters for quick retrieval.
80 -- Revision 1.8 2003/02/08 07:36:41 arjen
81 -- Added new table to the database : log_adv_daemon
83 -- Revision 1.7 2003/02/05 09:29:08 arjen
84 -- Bug fix: action.statuscode was in upper case.
86 -- Revision 1.6 2003/01/20 07:29:48 arjen
87 -- Added new tables to the database: parameter_class and parameter_notification
89 -- Revision 1.5 2003/01/18 08:46:48 arjen
90 -- Added new records to the 'type_of_issue' table.
91 -- Changed semantics of actionid 9 in the 'action' table.
95 CREATE SEQUENCE "action_actionid_seq";
99 "actionid" bigint DEFAULT nextval('"action_actionid_seq"'::text) NOT NULL,
101 "statuscode" character varying(3),
106 COPY "action" FROM stdin;
107 1 Entry in the system new This indicates that a notification has been entered into the system.
108 2 Display to user opn The notification has been displayed to the user. It doesn't mean that the user actually read the notification, but he/she should be aware. For that reason we consider the notification to be OPEN
109 3 Remarks added pen Remarks have been added to the notification.
110 4 Priority changed manually pen The priority of the notification has been changed by the user.
111 5 Priority changed automatically pen The priority of the notification has been changed by the system. This can be the result of an action by the user or an automatical escalation.
112 6 Action taken pen An action has been taken.
113 7 Assignment to user pen The notification has been assigned to an user.
114 8 More information or research needed. inv The notification is relevant and will be handled, however more information or research will be needed. For that reason the status has been altered to UNDER INVESTIGATION.
115 9 Investigation completed pen Investigation has been done. Information is available to fix the problem.
116 10 Job output no longer valid cls By making a newer job output a valid reference, this data has been obsoleted. Since it was a reference once the output isn't interesting anymore and thus the notification can be closed.
117 11 Action taken - please verify cls An action has been taken and things should have been resolved. Before the notification can be closed a verification has to be done. The new status is now VERIFY.
118 12 Action not verified pen A check has been done and the results were not good. New verification is needed. The status has been changed back to PEN.
119 13 Action verified cls A check has been done and the results were approved. The notification has been closed.
120 15 SMS sent opn An SMS has been sent.
121 14 E-mail sent opn An e-mail has been sent.
122 16 Fax sent opn An fax has been sent.
123 17 Log entries shown \N The log entries relevant to the notification have been shown.
124 18 Notification closed cls The notification has been closed.
125 19 Notification reopend opn The notification has been reopend.
126 20 Redisplayed to user \N The notification has been presented to a user. This is not the first time
127 21 Displayed in list \N The notification has been presented in a list with other notifications.
130 CREATE UNIQUE INDEX action_actionid_key ON "action" USING btree (actionid);
132 CREATE UNIQUE INDEX act_pk ON "action" USING btree (actionid);
134 CREATE UNIQUE INDEX act_actionname ON "action" USING btree (actionname);
136 CREATE INDEX act_statuscode ON "action" USING btree (statuscode);
138 SELECT setval ('"action_actionid_seq"', 21, true);
143 CREATE SEQUENCE "action_user_actionstepid_seq";
145 CREATE TABLE "action_user"
147 "actionstepid" bigint DEFAULT
148 nextval('"action_user_actionstepid_seq"'::text) NOT NULL,
151 "notificationid" bigint,
152 "timestamp" timestamp with time zone,
153 "statuscode" character varying(3),
157 CREATE UNIQUE INDEX action_user_actionstepid_key ON action_user USING btree (actionstepid);
159 CREATE INDEX anu_actionid ON action_user USING btree (actionid);
161 CREATE INDEX anu_username ON action_user USING btree (username);
163 CREATE INDEX anu_notificationid ON action_user USING btree (notificationid);
165 CREATE INDEX anu_timestamp ON action_user USING btree ("timestamp");
167 CREATE INDEX anu_statuscode ON action_user USING btree (statuscode);
169 SELECT setval ('"action_user_actionstepid_seq"', 1, false);
174 CREATE TABLE "db_value"
181 COPY "db_value" FROM stdin;
192 CREATE TABLE "history"
196 change_nature text, -- CREATED, MODIFIED or REMOVED
197 changed_property text,
203 CREATE INDEX history_pid_mod ON history(paramid, modified);
208 CREATE SEQUENCE "log_logid_seq";
212 "logid" bigint DEFAULT nextval('"log_logid_seq"'::text) NOT NULL,
214 "original_filename" text,
216 "object_timestamp" timestamp with time zone,
217 "timestamp" timestamp with time zone,
219 "processed" boolean DEFAULT false,
220 "recognized" boolean DEFAULT false
223 CREATE UNIQUE INDEX log_logid_key ON log USING btree (logid);
225 CREATE INDEX log_objectid ON log USING btree (objectid);
227 CREATE INDEX log_original_filename ON log USING btree (original_filename);
229 CREATE INDEX log_servicecode ON log USING btree (servicecode);
231 CREATE INDEX log_object_timestmap ON log USING btree ("timestamp");
233 CREATE INDEX log_timestmap ON log USING btree ("timestamp");
235 CREATE INDEX log_timestamp ON log USING btree (object_timestamp);
237 CREATE INDEX log_processed ON log USING btree (processed);
239 SELECT setval ('"log_logid_seq"', 1, false);
242 CREATE TABLE log_abuse
252 CREATE TABLE "log_notification"
254 "notificationid" bigint,
258 CREATE UNIQUE INDEX lon_pk ON log_notification USING btree (notificationid, logid);
260 CREATE INDEX lon_notificationid ON log_notification USING btree (notificationid);
262 CREATE INDEX lon_logid ON log_notification USING btree (logid);
267 CREATE SEQUENCE "notification_notificationid_seq";
269 CREATE TABLE "notification"
271 "notificationid" bigint DEFAULT
272 nextval('"notification_notificationid_seq"'::text) NOT NULL,
274 "type_of_issueid" bigint,
275 "timestamp" timestamp with time zone,
276 "statuscode" character varying(3),
278 "escalation_count_timestamp" timestamp with time zone,
279 "repeat_notification_timestamp" timestamp with time zone,
280 "securitylevel_view" integer,
281 "securitylevel_add" integer,
282 "securitylevel_close" integer
285 CREATE UNIQUE INDEX notification_notificationid_key ON notification USING btree (notificationid);
287 CREATE INDEX not_objectid ON notification USING btree (objectid);
289 CREATE INDEX not_type_of_issueid ON notification USING btree (type_of_issueid);
291 CREATE INDEX not_timestamp ON notification USING btree ("timestamp");
293 CREATE INDEX not_statuscode ON notification USING btree (statuscode);
295 CREATE INDEX not_priority ON notification USING btree (priority);
297 CREATE INDEX not_escalation_count_timestamp ON notification USING btree (escalation_count_timestamp);
299 CREATE INDEX not_repeat_notification_timesta ON notification USING btree (repeat_notification_timestamp);
301 SELECT setval ('"notification_notificationid_seq"', 1, false);
306 CREATE SEQUENCE checkid_seq;
308 CREATE TABLE notification_check
310 checkid bigint DEFAULT nextval('checkid_seq'::text) NOT NULL,
313 time_between_executions INTERVAL,
314 last_execution timestamp,
315 execution_counter BIGINT,
316 notificationcounter BIGINT,
317 decreasinglist BOOLEAN default false,
318 type_of_issueid BIGINT
321 CREATE UNIQUE INDEX not_check_checkid ON notification_check (checkid);
323 CREATE UNIQUE INDEX not_check_checkname ON notification_check (checkname);
325 CREATE INDEX not_check_check_lastexec ON notification_check (last_execution);
330 CREATE TABLE notification_check_buffer
338 CREATE INDEX notcheckbuffer_checkid ON notification_check_buffer(checkid);
340 CREATE INDEX notcheckbuffer_sort ON notification_check_buffer(sortorder);
342 CREATE INDEX notcheckbuffer_pid ON notification_check_buffer(pid);
344 CREATE INDEX notcheckbuffer_logid ON notification_check_buffer(logid);
349 CREATE SEQUENCE checklineid_seq;
351 CREATE TABLE notification_check_line
353 checklineid BIGINT DEFAULT nextval('checklineid_seq'::text) NOT NULL,
356 last_logid BIGINT default 0,
357 historicboundary INTERVAL default '0',
358 use_logid BOOLEAN default false,
362 CREATE UNIQUE INDEX notcheckline_checklineid ON notification_check_line (checklineid);
364 CREATE INDEX notcheckline_checkid ON notification_check_line (checkid);
366 CREATE INDEX notcheckline_sort ON notification_check_line (sortorder);
368 CREATE INDEX notcheckline_check_sort ON notification_check_line (checkid, sortorder);
373 CREATE SEQUENCE "object_objectid_seq";
375 CREATE TABLE "object"
377 "objectid" bigint DEFAULT nextval('"object_objectid_seq"'::text) NOT NULL,
380 "scp_enabled" boolean,
382 "mail_enabled" boolean,
384 "sms_enabled" boolean,
386 "fax_enabled" boolean,
388 "object_description" text,
390 "physical_location" text,
396 "notification_count" bigint,
397 "parameter_count" bigint
400 CREATE UNIQUE INDEX object_objectid_key ON object USING btree (objectid);
402 CREATE UNIQUE INDEX obj_objectname ON object USING btree (objectname);
404 CREATE UNIQUE INDEX obj_objectcode ON object USING btree (objectcode);
406 CREATE INDEX obj_mail_from ON object USING btree (mail_from);
408 CREATE INDEX os ON object (os);
410 CREATE INDEX os_version ON object (os, os_version);
412 SELECT setval ('"object_objectid_seq"', 1, false);
417 CREATE TABLE "object_abuse"
423 last_change timestamp,
425 primary key (objectid, source)
431 CREATE TABLE "object_issue"
434 "type_of_issueid" bigint,
435 "default_priority" integer,
436 "escalation" boolean,
437 "escalation_time" time without time zone,
438 "max_priority" integer,
439 "adjust_setting" text
442 CREATE UNIQUE INDEX obj_pk ON object_issue USING btree (objectid, type_of_issueid);
444 CREATE INDEX obj_objectid ON object_issue USING btree (objectid);
446 CREATE UNIQUE INDEX obj_type_of_notificationid ON object_issue USING btree (type_of_issueid);
451 CREATE TABLE "object_priority"
454 "priorityid" integer,
458 "repeat_notification" boolean,
459 "interval_for_repeat" time without time zone
462 CREATE UNIQUE INDEX obi_pk ON object_priority USING btree (objectid, priorityid);
464 CREATE INDEX obi_objectid ON object_priority USING btree (objectid);
466 CREATE INDEX obi_priorityid ON object_priority USING btree (priorityid);
471 CREATE TABLE "object_service"
475 "expected_interval" bigint,
476 "last_entry" timestamp with time zone,
477 "default_priority" integer,
478 "maximum_priority" integer,
482 CREATE UNIQUE INDEX obs_pk ON object_service USING btree (objectid, servicecode);
484 CREATE INDEX obs_objectid ON object_service USING btree (objectid);
486 CREATE INDEX obs_servicecode ON object_service USING btree (servicecode);
488 CREATE INDEX obs_accepted ON object_service USING btree (accepted);
493 CREATE TABLE object_statistics
497 statvalue double precision,
499 primary key (objectid, statname)
502 CREATE INDEX obj_stat_objid ON object_statistics USING btree (objectid);
507 CREATE TABLE "object_user"
511 "security_level" integer
514 CREATE UNIQUE INDEX ous_pk ON object_user USING btree (objectid, username);
516 CREATE INDEX ous_objectid ON object_user USING btree (objectid);
518 CREATE INDEX ous_username ON object_user USING btree (username);
520 CREATE INDEX ous_security_level ON object_user USING btree (security_level);
525 CREATE SEQUENCE "paramid_seq";
527 CREATE TABLE "parameter"
529 "paramid" bigint DEFAULT nextval('"paramid_seq"'::text) NOT NULL,
535 primary key (paramid)
538 CREATE UNIQUE INDEX param_obj_name ON parameter USING btree (objectid, name, class);
540 SELECT setval ('"paramid_seq"', 1, true);
545 CREATE TABLE "parameter_class"
547 "name" text, -- Name of the class: see parameter.class
548 "property_name" text,
550 "property_type" text, -- STATIC or DYNAMIC
551 "min" float, -- Default minimum value
552 "max" float, -- Default maximum value
553 "notify" boolean, -- Notify if something changes ?
555 primary key (name, property_name)
558 INSERT INTO parameter_class (name, property_name, description, property_type, notify)
559 VALUES ('package', 'version', 'The installed version of the package', 'STATIC', 't');
561 INSERT INTO parameter_class (name, property_name, description, property_type, notify)
562 VALUES ('filesystem', 'device', 'Volume on which the filesystem resides', 'STATIC', 't');
563 INSERT INTO parameter_class (name, property_name, description, property_type, notify)
564 VALUES ('filesystem', 'size', 'Total size in kilobytes', 'STATIC', 't');
565 INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)
566 VALUES ('filesystem', 'used', 'Number of kilobytes used', 'DYNAMIC', 0, 1000000, 't');
567 INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)
568 VALUES ('filesystem', 'available', 'Number of kilobytes available', 'DYNAMIC', 1000, 1000000, 't');
569 INSERT INTO parameter_class (name, property_name, description, property_type, notify)
570 VALUES ('filesystem', 'Inodes', 'Total number of i-nodes', 'STATIC', 't');
571 INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)
572 VALUES ('filesystem', 'Iused', 'Number of i-nodes used', 'DYNAMIC', 0, 1000000, 't');
573 INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)
574 VALUES ('filesystem', 'Ifree', 'Number of i-nodes available', 'DYNAMIC', 1000, 1000000, 't');
579 CREATE TABLE "parameter_notification"
581 "notificationid" bigint,
584 primary key (notificationid, paramid)
590 CREATE TABLE "priority"
596 "repeat_notification" boolean,
597 "interval_for_repeat" time without time zone
601 CREATE UNIQUE INDEX pri_pk ON priority USING btree (priority);
606 CREATE TABLE "property"
611 type text, -- STATIC or DYNAMIC
615 primary key (paramid, name)
621 CREATE TABLE "service"
625 "default_priority" integer,
626 "max_priority" integer
629 COPY "service" FROM stdin;
637 CROND Cron Daemon 1 5
638 gnucomo Gnucomo Daemon 1 5
639 sendmail Mail Transport Agent 1 5
640 dhcpd DHCP Daemon 1 5
642 named DNS Services 1 5
643 xinetd Internet Daemon 1 5
644 ipop Post Office Protocol 1 5
645 mgetty Serial port login and fax 1 5
647 pam Authentication modules 1 5
648 modprobe Kernel modules 1 5
651 CREATE UNIQUE INDEX ser_pk ON service USING btree (servicecode);
653 CREATE UNIQUE INDEX ser_servicename ON service USING btree (servicename);
655 CREATE TABLE service_pattern
663 primary key (service, rank)
666 INSERT INTO service_pattern VALUES ('ANY', 999999, '.+', 'notify', 'unmatched log');
667 INSERT INTO service_pattern VALUES ('ANY', 999990, '[Ee][Rr][Rr][Oo][Rr]', 'notify', 'Error detected');
668 INSERT INTO service_pattern VALUES ('ANY', 999991, '[Ff][Aa][Ii][Ll]', 'notify', 'Failure detected');
669 INSERT INTO service_pattern VALUES ('ANY', 999992, '[Ww][Aa][Rr][Nn]', 'notify', 'Warning detected');
673 CREATE TABLE "status"
675 "statuscode" character varying(3),
677 "open_notification" boolean,
682 COPY "status" FROM stdin;
683 new new entry t Just detected, but nothing has been done yet
684 opn open notification t The notification has been displayed to a user or a user has been notified. However nothing has been done yet.
685 pen pending t The notification is currently being worked on.
686 ver waiting for verification t The notification has been worked on and is currently awaiting the approval/verification.
687 rej rejected f The notification has been identified as a false postive and was reject. The notification is now closed
688 cls closed f The notification has been closed
689 inv needs investigation t The notification is currently under investigation and is awaiting additional details before one can work on this again.
692 CREATE UNIQUE INDEX sta_pk ON status USING btree (statuscode);
694 CREATE UNIQUE INDEX sta_statusname ON status USING btree (statusname);
696 CREATE INDEX sta_open_notification ON status USING btree (open_notification);
701 CREATE TABLE supported_os
707 CREATE UNIQUE INDEX spp_os ON supported_os (os_name);
712 CREATE SEQUENCE "type_of_issue_type_of_issue_seq";
714 CREATE TABLE "type_of_issue"
716 "type_of_issueid" bigint DEFAULT
717 nextval('"type_of_issue_type_of_issue_seq"'::text) NOT NULL,
719 "suggested_priority" text,
722 automated_check boolean,
725 recheck_interval timestamp
729 COPY "type_of_issue" FROM stdin;
730 1 manual entry 4 A manual entry of a notification t \N \N \N \N
731 2 parameter created 3 A new parameter was created t \N \N \N \N
732 3 property modified 3 The STATIC property of a parameter was modified t \N \N \N \N
733 4 parameter removed 3 A parameter was removed t \N \N \N \N
734 5 service unknown 5 Service in log entry is unknown t \N \N \N \N
735 6 service not used 5 Service in log entry is not used t \N \N \N \N
736 7 abuses exceeded 5 Abuse treshold exceeded from an IP address t \N \N \N \N
737 8 unmatched log 5 Log entries could not be matched t \N \N \N \N
738 9 Error detected 5 An Error is reported in the log t \N \N \N \N
739 10 Failure detected 5 A Failure is reported in the log t \N \N \N \N
740 11 Warning detected 3 A Warning is reported in the log t \N \N \N \N
741 12 property out of range 5 The DYNAMIC property of a parameter is out of range t \N \N \N \N
744 CREATE UNIQUE INDEX type_of_issue_type_of_issue_key ON type_of_issue USING btree (type_of_issueid);
746 CREATE UNIQUE INDEX toi_name ON type_of_issue USING btree (name);
748 CREATE INDEX toi_active ON type_of_issue USING btree (active);
750 SELECT setval ('"type_of_issue_type_of_issue_seq"', 12, true);
757 "username" text NOT NULL,
758 "active_sessionid" bigint,
759 "account_active" boolean,
760 "security_level" integer,
765 CREATE UNIQUE INDEX usr_username ON usr USING btree (username);
767 CREATE UNIQUE INDEX usr_active_sessionid ON usr USING btree (active_sessionid);
769 CREATE INDEX usr_account_active ON usr USING btree (account_active);
771 CREATE INDEX usr_security_level ON usr USING btree (security_level);
774 -- Set up user groups and grant permissions in the proper places.
781 -- The default user 'gnucomo' used by the daemons
783 CREATE ROLE gnucomo LOGIN PASSWORD 'gnucomo' IN GROUP daemon;
785 GRANT SELECT ON action TO GROUP view, GROUP ops, GROUP admin;
786 GRANT SELECT ON action_user TO GROUP view, GROUP ops, GROUP admin;
787 GRANT SELECT ON db_value TO GROUP view, GROUP ops, GROUP admin;
788 GRANT SELECT ON db_value TO GROUP daemon;
789 GRANT SELECT ON history TO GROUP view, GROUP ops, GROUP admin;
790 GRANT SELECT ON history TO GROUP daemon;
791 GRANT SELECT ON log TO GROUP view, GROUP ops, GROUP admin;
792 GRANT SELECT ON log TO GROUP daemon;
793 GRANT SELECT ON log_notification TO GROUP view, GROUP ops, GROUP admin;
794 GRANT SELECT ON notification TO GROUP view, GROUP ops, GROUP admin;
795 GRANT SELECT ON notification TO GROUP daemon;
796 GRANT SELECT ON object TO GROUP view, GROUP ops, GROUP admin, GROUP daemon;
797 GRANT SELECT ON object_abuse TO GROUP view, GROUP ops, GROUP admin;
798 GRANT SELECT ON object_abuse TO GROUP daemon;
799 GRANT SELECT ON object_issue TO GROUP view, GROUP ops, GROUP admin;
800 GRANT SELECT ON object_priority TO GROUP view, GROUP ops, GROUP admin;
801 GRANT SELECT ON object_service TO GROUP view, GROUP ops, GROUP admin;
802 GRANT SELECT ON object_service TO GROUP daemon;
803 GRANT SELECT ON object_statistics TO GROUP view, GROUP ops, GROUP admin;
804 GRANT SELECT ON object_statistics TO GROUP daemon;
805 GRANT SELECT ON object_user TO GROUP view, GROUP ops, GROUP admin;
806 GRANT SELECT ON object_user TO GROUP daemon;
807 GRANT SELECT ON parameter TO GROUP view, GROUP ops, GROUP admin;
808 GRANT SELECT ON parameter TO GROUP daemon;
809 GRANT SELECT ON parameter_class TO GROUP view, GROUP ops, GROUP admin;
810 GRANT SELECT ON parameter_class TO GROUP daemon;
811 GRANT SELECT ON parameter_notification TO GROUP view, GROUP ops, GROUP admin;
812 GRANT SELECT ON parameter_notification TO GROUP daemon;
813 GRANT SELECT ON priority TO GROUP view, GROUP ops, GROUP admin;
814 GRANT SELECT ON property TO GROUP view, GROUP ops, GROUP admin;
815 GRANT SELECT ON property TO GROUP daemon;
816 GRANT SELECT ON service TO GROUP view, GROUP ops, GROUP admin;
817 GRANT SELECT ON service TO GROUP daemon;
818 GRANT SELECT ON status TO GROUP view, GROUP ops, GROUP admin;
819 GRANT SELECT ON supported_os TO GROUP view, GROUP ops, GROUP admin;
820 GRANT SELECT ON type_of_issue TO GROUP view, GROUP ops, GROUP admin;
821 GRANT SELECT ON type_of_issue TO GROUP daemon;
822 GRANT SELECT ON usr TO GROUP view, GROUP ops, GROUP admin;
823 GRANT SELECT ON usr TO GROUP daemon;
825 GRANT INSERT ON action_user TO GROUP ops, GROUP admin;
826 GRANT INSERT ON action_user TO GROUP daemon;
827 GRANT DELETE ON action_user TO GROUP daemon;
828 GRANT UPDATE ON action_user_actionstepid_seq TO GROUP ops, GROUP admin;
829 GRANT UPDATE ON action_user_actionstepid_seq TO GROUP daemon;
830 GRANT UPDATE ON db_value TO GROUP daemon;
831 GRANT INSERT ON log TO GROUP daemon;
832 GRANT DELETE ON log TO GROUP daemon;
833 GRANT UPDATE ON log_logid_seq TO GROUP daemon;
834 GRANT INSERT ON log_notification TO GROUP daemon;
835 GRANT SELECT ON log_notification TO GROUP daemon;
836 GRANT DELETE ON log_notification TO GROUP daemon;
837 GRANT UPDATE ON notification TO GROUP ops, GROUP admin;
838 GRANT INSERT ON notification TO GROUP daemon;
839 GRANT DELETE ON notification TO GROUP daemon;
840 GRANT INSERT ON object TO GROUP admin;
841 GRANT UPDATE ON object TO GROUP ops, GROUP admin;
842 GRANT UPDATE ON object TO GROUP daemon;
843 GRANT DELETE ON object TO GROUP admin;
844 GRANT INSERT ON object_abuse TO GROUP admin;
845 GRANT UPDATE ON object_abuse TO GROUP ops, GROUP admin;
846 GRANT DELETE ON object_abuse TO GROUP admin;
847 GRANT INSERT ON log_abuse TO GROUP daemon;
848 GRANT INSERT ON object_abuse TO GROUP daemon;
849 GRANT UPDATE ON object_abuse TO GROUP daemon;
850 GRANT INSERT ON object_statistics TO GROUP daemon;
851 GRANT UPDATE ON object_statistics TO GROUP daemon;
853 GRANT INSERT ON parameter_notification TO GROUP daemon;
854 GRANT INSERT ON parameter TO GROUP daemon;
855 GRANT UPDATE ON paramid_seq TO GROUP daemon;
856 GRANT UPDATE ON notification_notificationid_seq TO GROUP daemon;
857 GRANT SELECT ON notification_notificationid_seq TO GROUP daemon;
858 GRANT INSERT ON property TO GROUP daemon;
859 GRANT UPDATE ON property TO GROUP daemon;
860 GRANT INSERT ON property TO GROUP admin;
861 GRANT UPDATE ON property TO GROUP admin;
862 GRANT INSERT ON history TO GROUP daemon;
863 GRANT INSERT ON parameter_class TO GROUP admin;
864 GRANT UPDATE ON parameter_class TO GROUP admin;
865 GRANT DELETE ON parameter_class TO GROUP admin;
867 GRANT UPDATE ON usr TO GROUP view, GROUP ops, GROUP admin;
868 GRANT INSERT ON usr TO GROUP admin;
869 GRANT DELETE ON usr TO GROUP admin;
870 GRANT SELECT ON service_pattern TO GROUP view, GROUP ops, GROUP admin;
871 GRANT SELECT ON service_pattern TO GROUP daemon;
872 GRANT INSERT ON service_pattern TO GROUP admin;
873 GRANT UPDATE ON service_pattern TO GROUP ops, GROUP admin;
874 GRANT DELETE ON service_pattern TO GROUP admin;
875 GRANT SELECT ON log_abuse TO GROUP view, GROUP ops, GROUP admin;
876 GRANT SELECT ON log_abuse TO GROUP daemon;
877 GRANT DELETE ON log_abuse TO GROUP daemon;