Created
November 10, 2022 15:29
-
-
Save JuanRamino/fcdab38786c2155702822e6bcf223d32 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DO $$ | |
DECLARE sch RECORD; | |
DECLARE tbl RECORD; | |
DECLARE seq RECORD; | |
DECLARE func RECORD; | |
DECLARE proc RECORD; | |
BEGIN | |
EXECUTE format('ALTER DATABASE %I OWNER TO %I', 'dbName', 'user'); | |
FOR sch IN | |
SELECT nspname FROM pg_catalog.pg_namespace where nspname NOT IN ('pg_toast', 'pg_catalog', 'information_schema') | |
LOOP | |
EXECUTE format('ALTER SCHEMA %I OWNER TO %I', sch.nspname, 'user'); | |
FOR tbl IN | |
SELECT table_name FROM information_schema.tables WHERE table_schema = sch.nspname | |
UNION | |
SELECT table_name FROM information_schema.views WHERE table_schema = sch.nspname | |
LOOP | |
EXECUTE format('ALTER TABLE %I.%I OWNER TO %I', sch.nspname, tbl.table_name, 'user'); | |
END LOOP; | |
FOR seq IN | |
SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = sch.nspname | |
LOOP | |
EXECUTE format('ALTER SEQUENCE %I.%I OWNER TO %I', sch.nspname, seq.sequence_name, 'user'); | |
END LOOP; | |
FOR func IN | |
SELECT p.oid::regprocedure AS func_name FROM pg_catalog.pg_proc p JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = sch.nspname and p.prokind = 'f' | |
LOOP | |
EXECUTE format('ALTER FUNCTION %s OWNER TO %I', func.func_name, 'user'); | |
END LOOP; | |
FOR proc IN | |
SELECT p.oid::regprocedure AS pro_name FROM pg_catalog.pg_proc p JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = sch.nspname and p.prokind = 'p' | |
LOOP | |
EXECUTE format('ALTER PROCEDURE %s OWNER TO %I', proc.pro_name, 'user'); | |
END LOOP; | |
END LOOP; | |
END $$ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment