mirror of
https://github.com/sassanix/Warracker.git
synced 2026-01-02 19:50:13 -06:00
51 lines
1.7 KiB
SQL
51 lines
1.7 KiB
SQL
-- Script to fix PostgreSQL permissions for warranty_user
|
|
|
|
-- Grant superuser privileges
|
|
ALTER ROLE warranty_user WITH SUPERUSER;
|
|
|
|
-- Grant role management privileges
|
|
ALTER ROLE warranty_user WITH CREATEROLE;
|
|
|
|
-- Ensure all database objects are accessible
|
|
GRANT ALL PRIVILEGES ON DATABASE warranty_db TO warranty_user;
|
|
GRANT ALL PRIVILEGES ON SCHEMA public TO warranty_user;
|
|
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO warranty_user;
|
|
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO warranty_user;
|
|
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO warranty_user;
|
|
|
|
-- Make warranty_user the owner of all tables
|
|
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
BEGIN
|
|
FOR rec IN SELECT tablename FROM pg_tables WHERE schemaname = 'public'
|
|
LOOP
|
|
EXECUTE 'ALTER TABLE public.' || quote_ident(rec.tablename) || ' OWNER TO warranty_user';
|
|
END LOOP;
|
|
END $$;
|
|
|
|
-- Make warranty_user the owner of all sequences
|
|
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
BEGIN
|
|
FOR rec IN SELECT sequencename FROM pg_sequences WHERE schemaname = 'public'
|
|
LOOP
|
|
EXECUTE 'ALTER SEQUENCE public.' || quote_ident(rec.sequencename) || ' OWNER TO warranty_user';
|
|
END LOOP;
|
|
END $$;
|
|
|
|
-- Make warranty_user the owner of all functions
|
|
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
BEGIN
|
|
FOR rec IN SELECT proname, p.oid FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname = 'public'
|
|
LOOP
|
|
BEGIN
|
|
EXECUTE 'ALTER FUNCTION public.' || quote_ident(rec.proname) || '(' || pg_get_function_arguments(rec.oid) || ') OWNER TO warranty_user';
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RAISE NOTICE 'Error changing ownership of function %: %', rec.proname, SQLERRM;
|
|
END;
|
|
END LOOP;
|
|
END $$; |