From 5f686399555f82d13442010a1b1b2f8d8138edc5 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Wed, 23 Nov 2022 13:31:45 +0100 Subject: [PATCH] schema for postgres --- ...te-schema.sql => create-schema-mariadb.sql | 0 create-schema-postgres.sql | 35 +++++++++++++++++++ 2 files changed, 35 insertions(+) rename create-schema.sql => create-schema-mariadb.sql (100%) create mode 100644 create-schema-postgres.sql diff --git a/create-schema.sql b/create-schema-mariadb.sql similarity index 100% rename from create-schema.sql rename to create-schema-mariadb.sql diff --git a/create-schema-postgres.sql b/create-schema-postgres.sql new file mode 100644 index 0000000..5520066 --- /dev/null +++ b/create-schema-postgres.sql @@ -0,0 +1,35 @@ +CREATE TABLE public.users_t ( + id SERIAL NOT NULL, + username VARCHAR(25) NOT NULL, + pw VARCHAR(512) NOT NULL, + super INTEGER DEFAULT 0 NOT NULL, + CONSTRAINT users_t_pk PRIMARY KEY (id), + CONSTRAINT users_t_uk_username UNIQUE (username) +); + +CREATE TABLE public.acls_t ( + id SERIAL NOT NULL, + "user" INTEGER NOT NULL, + topic VARCHAR(512) NOT NULL, + rw INTEGER DEFAULT 5 NOT NULL, + CONSTRAINT acls_t_pk PRIMARY KEY (id), + CONSTRAINT acls_t_fk_user FOREIGN KEY ("user") REFERENCES users_t(id) +); + +CREATE OR REPLACE VIEW users AS + SELECT users_t.username, + users_t.pw, + users_t.super + FROM users_t; + +CREATE OR REPLACE VIEW acls AS + SELECT a.topic, + a.rw, + u.username + FROM users_t u, + acls_t a + WHERE a."user" = u.id; + +CREATE USER mosquittoauth; +GRANT SELECT ON users, acls TO mosquittoauth; +