-- ===================================================== -- POST-DDL: Grant Permissions to gamilit_user -- ===================================================== -- Description: Otorga todos los permisos necesarios a gamilit_user -- Execution: DEBE ejecutarse DESPUÉS de crear todas las tablas DDL -- Created: 2025-11-02 -- Agent: ATLAS-DATABASE -- ===================================================== -- Grant USAGE on all schemas GRANT USAGE ON SCHEMA auth, auth_management, system_configuration, gamification_system, educational_content, content_management, social_features, progress_tracking, audit_logging, gamilit, public TO gamilit_user; -- Grant ALL PRIVILEGES on tables for each schema GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA auth TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA auth_management TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA system_configuration TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA gamification_system TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA educational_content TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA content_management TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA social_features TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA progress_tracking TO gamilit_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA audit_logging TO gamilit_user; -- Grant ALL PRIVILEGES on sequences for each schema GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA auth TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA auth_management TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA system_configuration TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA gamification_system TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA educational_content TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA content_management TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA social_features TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA progress_tracking TO gamilit_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA audit_logging TO gamilit_user; -- Grant EXECUTE on all functions GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA gamilit TO gamilit_user; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA auth TO gamilit_user; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO gamilit_user; -- Set default privileges for future objects -- Tables ALTER DEFAULT PRIVILEGES IN SCHEMA auth GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA auth_management GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA system_configuration GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA gamification_system GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA educational_content GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA content_management GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA social_features GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA progress_tracking GRANT ALL ON TABLES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA audit_logging GRANT ALL ON TABLES TO gamilit_user; -- Sequences ALTER DEFAULT PRIVILEGES IN SCHEMA auth GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA auth_management GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA system_configuration GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA gamification_system GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA educational_content GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA content_management GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA social_features GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA progress_tracking GRANT ALL ON SEQUENCES TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA audit_logging GRANT ALL ON SEQUENCES TO gamilit_user; -- Functions ALTER DEFAULT PRIVILEGES IN SCHEMA gamilit GRANT EXECUTE ON FUNCTIONS TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA auth GRANT EXECUTE ON FUNCTIONS TO gamilit_user; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO gamilit_user; -- ===================================================== -- BYPASS RLS for gamilit_user -- ===================================================== -- Added: 2025-12-18 (FIX: Application user needs to bypass RLS) -- Reason: The application manages RLS context via app.current_user_id -- but needs BYPASSRLS to perform operations on behalf of users -- ===================================================== ALTER ROLE gamilit_user BYPASSRLS; -- Verification SELECT 'Permisos otorgados exitosamente a gamilit_user (incluyendo BYPASSRLS)' as status;