mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
39 lines
1.4 KiB
SQL
39 lines
1.4 KiB
SQL
-- ============================================================
|
||
-- Ruolo PostgreSQL applicativo pechub_app
|
||
--
|
||
-- Questo script viene eseguito al primo avvio del container DB.
|
||
-- Il ruolo viene creato PRIMA che Alembic esegua le migrazioni.
|
||
-- I GRANT sulle singole tabelle vengono gestiti dalla migration 0006.
|
||
--
|
||
-- Scopo:
|
||
-- - pechub_app è un utente non-superuser su cui RLS è attiva
|
||
-- - Il backend e il worker usano DATABASE_URL con pechub_app
|
||
-- - Alembic usa DATABASE_URL_SYNC con l'utente pechub (superuser)
|
||
-- ============================================================
|
||
|
||
DO $$
|
||
BEGIN
|
||
IF NOT EXISTS (
|
||
SELECT 1 FROM pg_roles WHERE rolname = 'pechub_app'
|
||
) THEN
|
||
CREATE USER pechub_app WITH PASSWORD 'pechub_app_password'
|
||
NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
||
RAISE NOTICE '[pechub] Ruolo pechub_app creato';
|
||
ELSE
|
||
RAISE NOTICE '[pechub] Ruolo pechub_app già presente – skip';
|
||
END IF;
|
||
END
|
||
$$;
|
||
|
||
-- Permessi di base (i GRANT sulle tabelle vengono dopo le migrazioni)
|
||
GRANT CONNECT ON DATABASE pechub TO pechub_app;
|
||
GRANT USAGE ON SCHEMA public TO pechub_app;
|
||
|
||
-- Default privileges: tutte le future tabelle create da pechub
|
||
-- ricevono automaticamente i permessi per pechub_app
|
||
ALTER DEFAULT PRIVILEGES FOR ROLE pechub IN SCHEMA public
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO pechub_app;
|
||
|
||
ALTER DEFAULT PRIVILEGES FOR ROLE pechub IN SCHEMA public
|
||
GRANT USAGE, SELECT ON SEQUENCES TO pechub_app;
|