Updates for new Hallinta and aliases
[misc/hallinta-vmail] / vmail.sql
1 CREATE TABLE vmail_domain (
2     id SERIAL,
3     name character varying(100) NOT NULL,
4     sys_user character varying(10) NOT NULL,
5     sys_edit timestamp without time zone NOT NULL,
6     UNIQUE(name)
7 );
8
9 CREATE UNIQUE INDEX vmail_domain_id ON vmail_domain USING btree (id);
10
11 CREATE TABLE vmail_user (
12     id SERIAL,
13     vmail_domain_id integer NOT NULL,
14     username character varying(50) NOT NULL,
15     password character varying(50),
16     active integer DEFAULT 0 NOT NULL,
17     sys_user character varying(10) NOT NULL,
18     sys_edit timestamp without time zone NOT NULL,
19     UNIQUE(vmail_domain_id,username)
20 );
21
22 CREATE UNIQUE INDEX vmail_user_id ON vmail_user USING btree (id);
23 CREATE INDEX vmail_user_vmail_domain_id ON vmail_user USING btree (vmail_domain_id);
24
25 -- ALTER TABLE ONLY vmail_user
26 --     ADD CONSTRAINT vmail_user_vmail_domain_id_username_key UNIQUE (vmail_domain_id, username);
27
28 CREATE TABLE vmail_alias (
29     id SERIAL,
30     vmail_domain_id integer NOT NULL,
31     username character varying(50) NOT NULL,
32     destination TEXT DEFAULT NULL,
33     active integer DEFAULT 0 NOT NULL,
34     sys_user character varying(10) NOT NULL,
35     sys_edit timestamp without time zone NOT NULL,
36     UNIQUE(vmail_domain_id,username)
37 );
38
39 CREATE UNIQUE INDEX vmail_alias_id ON vmail_alias USING btree (id);
40 CREATE INDEX vmail_alias_vmail_domain_id ON vmail_alias USING btree (vmail_domain_id);
41
42 REVOKE ALL ON TABLE vmail_user FROM PUBLIC;
43 GRANT SELECT ON TABLE vmail_user TO "vmail";
44 GRANT ALL ON TABLE vmail_user TO "hallinta";
45
46 REVOKE ALL ON SEQUENCE vmail_user_id_seq FROM PUBLIC;
47 GRANT ALL ON SEQUENCE vmail_user_id_seq TO "hallinta";
48
49 REVOKE ALL ON TABLE vmail_alias FROM PUBLIC;
50 GRANT SELECT ON TABLE vmail_alias TO "vmail";
51 GRANT ALL ON TABLE vmail_alias TO "hallinta";
52
53 REVOKE ALL ON SEQUENCE vmail_alias_id_seq FROM PUBLIC;
54 GRANT ALL ON SEQUENCE vmail_alias_id_seq TO "hallinta";
55
56 REVOKE ALL ON TABLE vmail_domain FROM PUBLIC;
57 GRANT SELECT ON TABLE vmail_domain TO "vmail";
58 GRANT ALL ON TABLE vmail_domain TO "hallinta";
59
60 REVOKE ALL ON SEQUENCE vmail_domain_id_seq FROM PUBLIC;
61 GRANT ALL ON SEQUENCE vmail_domain_id_seq TO "hallinta";
62