sql/schéma.sql
author František Kučera <franta-hg@frantovo.cz>
Fri May 29 15:12:02 2009 +0200 (2009-05-29)
changeset 15 ad391f838b9d
parent 14 c830b05699ba
child 16 3461cdf271d0
permissions -rw-r--r--
Zvýšení maximální délky hesla v HTML formuláři: 128 → 512.
     1 --
     2 -- PostgreSQL database dump
     3 --
     4 
     5 -- Started on 2009-05-10 18:21:07 CEST
     6 
     7 SET client_encoding = 'UTF8';
     8 SET standard_conforming_strings = off;
     9 SET check_function_bodies = false;
    10 SET client_min_messages = warning;
    11 SET escape_string_warning = off;
    12 
    13 --
    14 -- TOC entry 8 (class 2615 OID 16387)
    15 -- Name: posta; Type: SCHEMA; Schema: -; Owner: -
    16 --
    17 
    18 CREATE SCHEMA posta;
    19 
    20 
    21 SET search_path = posta, pg_catalog;
    22 
    23 --
    24 -- TOC entry 55 (class 1255 OID 16694)
    25 -- Dependencies: 364 8
    26 -- Name: zmen_heslo(character varying, character varying, character varying, character varying); Type: FUNCTION; Schema: posta; Owner: -
    27 --
    28 
    29 CREATE FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) RETURNS text
    30     AS $_$DECLARE pocet integer;
    31 BEGIN
    32 UPDATE uzivatel
    33  SET heslo = md5($4)
    34  WHERE 	login = $1
    35 	AND domena = $2
    36 	AND heslo = md5($3);
    37 	GET DIAGNOSTICS pocet = ROW_COUNT;
    38 	IF pocet = 1 THEN
    39 		RETURN 'Změna hesla pro ' || $1 || '@' || $2 || ' proběhla úspěšně.';
    40 	ELSE
    41 		RAISE EXCEPTION 'Nesprávné heslo, nebo uživatel % neexistuje', $1 || '@' || $2;
    42 	END IF;
    43 END;
    44 	$_$
    45     LANGUAGE plpgsql SECURITY DEFINER;
    46 
    47 
    48 --
    49 -- TOC entry 1835 (class 0 OID 0)
    50 -- Dependencies: 55
    51 -- Name: FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying); Type: COMMENT; Schema: posta; Owner: -
    52 --
    53 
    54 COMMENT ON FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) IS 'Změní heslo uživatele.';
    55 
    56 
    57 SET default_tablespace = '';
    58 
    59 SET default_with_oids = false;
    60 
    61 --
    62 -- TOC entry 1549 (class 1259 OID 16550)
    63 -- Dependencies: 8
    64 -- Name: alias; Type: TABLE; Schema: posta; Owner: -; Tablespace: 
    65 --
    66 
    67 CREATE TABLE alias (
    68     zdroj_jmeno character varying(255) NOT NULL,
    69     zdroj_domena character varying(255) NOT NULL,
    70     cil_jmeno character varying(255) NOT NULL,
    71     cil_domena character varying(255)
    72 );
    73 
    74 
    75 --
    76 -- TOC entry 1837 (class 0 OID 0)
    77 -- Dependencies: 1549
    78 -- Name: COLUMN alias.zdroj_jmeno; Type: COMMENT; Schema: posta; Owner: -
    79 --
    80 
    81 COMMENT ON COLUMN alias.zdroj_jmeno IS 'Část zdrojové adresy před zavináčem.
    82 (sem přijde zpráva)';
    83 
    84 
    85 --
    86 -- TOC entry 1838 (class 0 OID 0)
    87 -- Dependencies: 1549
    88 -- Name: COLUMN alias.zdroj_domena; Type: COMMENT; Schema: posta; Owner: -
    89 --
    90 
    91 COMMENT ON COLUMN alias.zdroj_domena IS 'Část zdrojové adresy za zavináčem.
    92 (sem přijde zpráva)';
    93 
    94 
    95 --
    96 -- TOC entry 1839 (class 0 OID 0)
    97 -- Dependencies: 1549
    98 -- Name: COLUMN alias.cil_jmeno; Type: COMMENT; Schema: posta; Owner: -
    99 --
   100 
   101 COMMENT ON COLUMN alias.cil_jmeno IS 'Část cílové adresy před zavináčem.
   102 (sem zprávu předáme)';
   103 
   104 
   105 --
   106 -- TOC entry 1840 (class 0 OID 0)
   107 -- Dependencies: 1549
   108 -- Name: COLUMN alias.cil_domena; Type: COMMENT; Schema: posta; Owner: -
   109 --
   110 
   111 COMMENT ON COLUMN alias.cil_domena IS 'Část cílové adresy za zavináčem.
   112 (sem zprávu předáme)';
   113 
   114 
   115 --
   116 -- TOC entry 1536 (class 1259 OID 16396)
   117 -- Dependencies: 8
   118 -- Name: domena; Type: TABLE; Schema: posta; Owner: -; Tablespace: 
   119 --
   120 
   121 CREATE TABLE domena (
   122     domena character varying(255) NOT NULL
   123 );
   124 
   125 
   126 --
   127 -- TOC entry 1537 (class 1259 OID 16409)
   128 -- Dependencies: 8
   129 -- Name: uzivatel; Type: TABLE; Schema: posta; Owner: -; Tablespace: 
   130 --
   131 
   132 CREATE TABLE uzivatel (
   133     login character varying(255) NOT NULL,
   134     heslo character varying(512),
   135     domena character varying(255) NOT NULL
   136 );
   137 
   138 
   139 --
   140 -- TOC entry 1550 (class 1259 OID 16602)
   141 -- Dependencies: 1629 8
   142 -- Name: dovecot_heslo; Type: VIEW; Schema: posta; Owner: -
   143 --
   144 
   145 CREATE VIEW dovecot_heslo AS
   146     SELECT (((uzivatel.login)::text || '@'::text) || (uzivatel.domena)::text) AS "user", uzivatel.heslo AS password, uzivatel.login, uzivatel.domena FROM uzivatel;
   147 
   148 
   149 --
   150 -- TOC entry 1552 (class 1259 OID 16631)
   151 -- Dependencies: 1631 8
   152 -- Name: dovecot_uzivatel; Type: VIEW; Schema: posta; Owner: -
   153 --
   154 
   155 CREATE VIEW dovecot_uzivatel AS
   156     SELECT 5000 AS uid, 5000 AS gid, ((('/var/mail/virtualniposta/'::text || (uzivatel.domena)::text) || '/'::text) || (uzivatel.login)::text) AS home, (((('maildir:/var/mail/virtualniposta/'::text || (uzivatel.domena)::text) || '/'::text) || (uzivatel.login)::text) || '/Maildir'::text) AS mail, 'maildir:storage=524288'::text AS quota, uzivatel.login, uzivatel.domena FROM uzivatel;
   157 
   158 
   159 --
   160 -- TOC entry 1553 (class 1259 OID 16695)
   161 -- Dependencies: 1632 8
   162 -- Name: postfix_alias; Type: VIEW; Schema: posta; Owner: -
   163 --
   164 
   165 CREATE VIEW postfix_alias AS
   166     SELECT (((alias.zdroj_jmeno)::text || '@'::text) || (alias.zdroj_domena)::text) AS zdroj, (((alias.cil_jmeno)::text || '@'::text) || (alias.cil_domena)::text) AS cil FROM alias;
   167 
   168 
   169 --
   170 -- TOC entry 1551 (class 1259 OID 16607)
   171 -- Dependencies: 1630 8
   172 -- Name: postfix_uzivatel; Type: VIEW; Schema: posta; Owner: -
   173 --
   174 
   175 CREATE VIEW postfix_uzivatel AS
   176     SELECT ((((uzivatel.domena)::text || '/'::text) || (uzivatel.login)::text) || '/Maildir/'::text) AS cesta, uzivatel.login, uzivatel.domena FROM uzivatel;
   177 
   178 
   179 --
   180 -- TOC entry 1829 (class 2606 OID 16557)
   181 -- Dependencies: 1549 1549 1549 1549
   182 -- Name: aliasy_pk; Type: CONSTRAINT; Schema: posta; Owner: -; Tablespace: 
   183 --
   184 
   185 ALTER TABLE ONLY alias
   186     ADD CONSTRAINT aliasy_pk PRIMARY KEY (zdroj_jmeno, zdroj_domena, cil_jmeno);
   187 
   188 
   189 --
   190 -- TOC entry 1825 (class 2606 OID 16400)
   191 -- Dependencies: 1536 1536
   192 -- Name: domena_pk; Type: CONSTRAINT; Schema: posta; Owner: -; Tablespace: 
   193 --
   194 
   195 ALTER TABLE ONLY domena
   196     ADD CONSTRAINT domena_pk PRIMARY KEY (domena);
   197 
   198 
   199 --
   200 -- TOC entry 1827 (class 2606 OID 16416)
   201 -- Dependencies: 1537 1537 1537
   202 -- Name: uzivatel_pk; Type: CONSTRAINT; Schema: posta; Owner: -; Tablespace: 
   203 --
   204 
   205 ALTER TABLE ONLY uzivatel
   206     ADD CONSTRAINT uzivatel_pk PRIMARY KEY (login, domena);
   207 
   208 
   209 --
   210 -- TOC entry 1831 (class 2606 OID 16558)
   211 -- Dependencies: 1536 1549 1824
   212 -- Name: alias_domena_fk; Type: FK CONSTRAINT; Schema: posta; Owner: -
   213 --
   214 
   215 ALTER TABLE ONLY alias
   216     ADD CONSTRAINT alias_domena_fk FOREIGN KEY (zdroj_domena) REFERENCES domena(domena);
   217 
   218 
   219 --
   220 -- TOC entry 1830 (class 2606 OID 16417)
   221 -- Dependencies: 1536 1824 1537
   222 -- Name: uzivatel_domena_fk; Type: FK CONSTRAINT; Schema: posta; Owner: -
   223 --
   224 
   225 ALTER TABLE ONLY uzivatel
   226     ADD CONSTRAINT uzivatel_domena_fk FOREIGN KEY (domena) REFERENCES domena(domena);
   227 
   228 
   229 --
   230 -- TOC entry 1834 (class 0 OID 0)
   231 -- Dependencies: 8
   232 -- Name: posta; Type: ACL; Schema: -; Owner: -
   233 --
   234 
   235 REVOKE ALL ON SCHEMA posta FROM PUBLIC;
   236 REVOKE ALL ON SCHEMA posta FROM posta;
   237 GRANT ALL ON SCHEMA posta TO posta;
   238 GRANT USAGE ON SCHEMA posta TO posta_cteni;
   239 GRANT USAGE ON SCHEMA posta TO posta_zmena_hesla;
   240 
   241 
   242 --
   243 -- TOC entry 1836 (class 0 OID 0)
   244 -- Dependencies: 55
   245 -- Name: zmen_heslo(character varying, character varying, character varying, character varying); Type: ACL; Schema: posta; Owner: -
   246 --
   247 
   248 REVOKE ALL ON FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) FROM PUBLIC;
   249 REVOKE ALL ON FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) FROM posta;
   250 GRANT ALL ON FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) TO posta;
   251 GRANT ALL ON FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) TO PUBLIC;
   252 GRANT ALL ON FUNCTION zmen_heslo(login character varying, domena character varying, stare_heslo character varying, nove_heslo character varying) TO posta_zmena_hesla;
   253 
   254 
   255 --
   256 -- TOC entry 1841 (class 0 OID 0)
   257 -- Dependencies: 1549
   258 -- Name: alias; Type: ACL; Schema: posta; Owner: -
   259 --
   260 
   261 REVOKE ALL ON TABLE alias FROM PUBLIC;
   262 REVOKE ALL ON TABLE alias FROM posta;
   263 GRANT ALL ON TABLE alias TO posta;
   264 
   265 
   266 --
   267 -- TOC entry 1842 (class 0 OID 0)
   268 -- Dependencies: 1536
   269 -- Name: domena; Type: ACL; Schema: posta; Owner: -
   270 --
   271 
   272 REVOKE ALL ON TABLE domena FROM PUBLIC;
   273 REVOKE ALL ON TABLE domena FROM posta;
   274 GRANT ALL ON TABLE domena TO posta;
   275 GRANT SELECT ON TABLE domena TO posta_cteni;
   276 
   277 
   278 --
   279 -- TOC entry 1843 (class 0 OID 0)
   280 -- Dependencies: 1537
   281 -- Name: uzivatel; Type: ACL; Schema: posta; Owner: -
   282 --
   283 
   284 REVOKE ALL ON TABLE uzivatel FROM PUBLIC;
   285 REVOKE ALL ON TABLE uzivatel FROM posta;
   286 GRANT ALL ON TABLE uzivatel TO posta;
   287 GRANT SELECT ON TABLE uzivatel TO posta_cteni;
   288 
   289 
   290 --
   291 -- TOC entry 1844 (class 0 OID 0)
   292 -- Dependencies: 1550
   293 -- Name: dovecot_heslo; Type: ACL; Schema: posta; Owner: -
   294 --
   295 
   296 REVOKE ALL ON TABLE dovecot_heslo FROM PUBLIC;
   297 REVOKE ALL ON TABLE dovecot_heslo FROM posta;
   298 GRANT ALL ON TABLE dovecot_heslo TO posta;
   299 GRANT SELECT ON TABLE dovecot_heslo TO posta_cteni;
   300 
   301 
   302 --
   303 -- TOC entry 1845 (class 0 OID 0)
   304 -- Dependencies: 1552
   305 -- Name: dovecot_uzivatel; Type: ACL; Schema: posta; Owner: -
   306 --
   307 
   308 REVOKE ALL ON TABLE dovecot_uzivatel FROM PUBLIC;
   309 REVOKE ALL ON TABLE dovecot_uzivatel FROM posta;
   310 GRANT ALL ON TABLE dovecot_uzivatel TO posta;
   311 GRANT SELECT ON TABLE dovecot_uzivatel TO posta_cteni;
   312 
   313 
   314 --
   315 -- TOC entry 1846 (class 0 OID 0)
   316 -- Dependencies: 1553
   317 -- Name: postfix_alias; Type: ACL; Schema: posta; Owner: -
   318 --
   319 
   320 REVOKE ALL ON TABLE postfix_alias FROM PUBLIC;
   321 REVOKE ALL ON TABLE postfix_alias FROM posta;
   322 GRANT ALL ON TABLE postfix_alias TO posta;
   323 GRANT SELECT ON TABLE postfix_alias TO posta_cteni;
   324 
   325 
   326 --
   327 -- TOC entry 1847 (class 0 OID 0)
   328 -- Dependencies: 1551
   329 -- Name: postfix_uzivatel; Type: ACL; Schema: posta; Owner: -
   330 --
   331 
   332 REVOKE ALL ON TABLE postfix_uzivatel FROM PUBLIC;
   333 REVOKE ALL ON TABLE postfix_uzivatel FROM posta;
   334 GRANT ALL ON TABLE postfix_uzivatel TO posta;
   335 GRANT SELECT ON TABLE postfix_uzivatel TO posta_cteni;
   336 
   337 
   338 -- Completed on 2009-05-10 18:21:15 CEST
   339 
   340 --
   341 -- PostgreSQL database dump complete
   342 --
   343