Files
openvox-docker/config/postgres/script/setup_readonly_user.sql
2026-03-02 15:40:16 +01:00

34 lines
1.5 KiB
SQL
Executable File

-- Dieses Skript enthält die Logik zur Erstellung eines dedizierten Read-Only-Benutzers
-- und zur Anpassung des Hauptbenutzers.
-- Dieses Skript enthält die Logik zur Erstellung eines dedizierten Read-Only-Benutzers
-- und zur Anpassung des Hauptbenutzers.
-- 1. Erstellen Sie einen neuen Benutzer mit einem sicheren Passwort.
CREATE USER openvox_ro WITH PASSWORD 'Start1234';
-- 2. Entziehen Sie alle Standardberechtigungen für den neuen Benutzer.
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON TABLES FROM openvox_ro;
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON SEQUENCES FROM openvox_ro;
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM openvox_ro;
-- 3. Erteilen Sie die erforderlichen Mindestberechtigungen.
-- Erlauben Sie die Verbindung zur Datenbank.
GRANT CONNECT ON DATABASE openvoxdb TO openvox_ro;
-- Erlauben Sie die Nutzung des 'public'-Schemas.
GRANT USAGE ON SCHEMA public TO openvox_ro;
-- Erteilen Sie Lesezugriff (SELECT) auf alle vorhandenen Tabellen.
GRANT SELECT ON ALL TABLES IN SCHEMA public TO openvox_ro;
-- 4. Stellen Sie sicher, dass der Benutzer auch Lesezugriff auf zukünftig erstellte Tabellen hat.
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO openvox_ro;
-- HINWEIS: Der Hauptbenutzer 'openvox' sollte idealerweise kein Superuser sein,
-- nachdem die Initialisierung abgeschlossen ist. Der folgende Befehl würde dies tun,
-- könnte aber zukünftige Schema-Migrationen verhindern oder mit Postgres 18+ zu Fehlern führen.
-- ALTER USER openvox NOSUPERUSER;
COMMIT;