Files
dmenu-api/fix-db-permissions.sql
T
2025-12-15 16:46:36 +03:30

40 lines
1.7 KiB
SQL

-- Fix PostgreSQL permissions for schema creation
-- Run this script as a PostgreSQL superuser (usually 'postgres')
--
-- Option 1: Run with psql (replace dmenuuser and dmenutest with your values):
-- psql -U postgres -d postgres -f fix-db-permissions.sql
--
-- Option 2: Run with sudo (no password needed):
-- sudo -u postgres psql -d postgres -f fix-db-permissions.sql
--
-- Option 3: Copy and paste these commands into psql after connecting
-- Replace 'dmenuuser' and 'dmenutest' with your actual DB_USER and DB_NAME from .env
-- Current values from your .env: DB_USER=dmenuuser, DB_NAME=dmenutest
--
-- IMPORTANT: For PostgreSQL 15+, we need to make the user the owner of the database and schema
-- Make the user the owner of the database (PostgreSQL 15+ requirement)
ALTER DATABASE dmenutest OWNER TO dmenuuser;
-- Connect to the target database (run this in psql, then continue with schema commands)
-- \c dmenutest
-- Make the user the owner of the public schema (PostgreSQL 15+ requirement)
ALTER SCHEMA public OWNER TO dmenuuser;
-- Grant all necessary permissions (redundant but safe)
GRANT CONNECT ON DATABASE dmenutest TO dmenuuser;
GRANT USAGE ON SCHEMA public TO dmenuuser;
GRANT CREATE ON SCHEMA public TO dmenuuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO dmenuuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO dmenuuser;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO dmenuuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO dmenuuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO dmenuuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS TO dmenuuser;
-- For PostgreSQL 15+ - ensure full database access
GRANT ALL ON DATABASE dmenutest TO dmenuuser;