-- 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;