34 lines
1.5 KiB
SQL
Executable File
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;
|