-- Role pro PostgREST anonymní přístup (read-only). -- GRANT na views je v db/views/R__z_postgrest_ems_anon_grants.sql (Flyway je aplikuje až po R__vw_*). DO $$ BEGIN IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'ems_anon') THEN CREATE ROLE ems_anon NOLOGIN; END IF; END $$; GRANT USAGE ON SCHEMA ems TO ems_anon; -- Read-only na tabulky (existují po V001–V008) GRANT SELECT ON ems.market_interval_price TO ems_anon; GRANT SELECT ON ems.planning_run TO ems_anon; GRANT SELECT ON ems.planning_interval TO ems_anon; GRANT SELECT ON ems.forecast_pv_interval TO ems_anon; GRANT SELECT ON ems.forecast_pv_run TO ems_anon; GRANT SELECT ON ems.operating_mode_def TO ems_anon; GRANT SELECT ON ems.site_operating_mode TO ems_anon; GRANT SELECT ON ems.site_operating_mode_log TO ems_anon; GRANT SELECT ON ems.ev_session TO ems_anon; GRANT SELECT ON ems.asset_vehicle TO ems_anon; COMMENT ON ROLE ems_anon IS 'Anonymní role pro PostgREST. Read-only přístup na views a vybrané tabulky. Zápisy jdou výhradně přes FastAPI backend který má vlastní DB connection.';