26 lines
1.0 KiB
SQL
26 lines
1.0 KiB
SQL
-- Least-Privilege-DB-User fuer die App (wird nur bei INITIALISIERUNG
|
|
-- eines leeren pgdata-Volumes automatisch ausgefuehrt).
|
|
--
|
|
-- Bei BESTEHENDem Volume den User einmalig manuell anlegen:
|
|
-- docker compose exec db psql -U calendar -d calendar -f - <<'SQL'
|
|
-- ... (Inhalt dieses Scripts)
|
|
-- SQL
|
|
--
|
|
-- Der App-User darf nur in seiner Datenbank arbeiten und besitzt
|
|
-- keine Superuser-Rechte (im Gegensatz zum Owner "calendar").
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'calendar_app') THEN
|
|
CREATE ROLE calendar_app LOGIN PASSWORD 'calendar_app';
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
GRANT CONNECT ON DATABASE calendar TO calendar_app;
|
|
GRANT USAGE ON SCHEMA public TO calendar_app;
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO calendar_app;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO calendar_app;
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO calendar_app;
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO calendar_app; |