Skip to content

Instantly share code, notes, and snippets.

@gingerlime
Created April 24, 2012 19:32
Show Gist options
  • Save gingerlime/2482969 to your computer and use it in GitHub Desktop.
Save gingerlime/2482969 to your computer and use it in GitHub Desktop.
Postgresql - Changing ownership on all tables
#!/bin/bash
usage()
{
cat << EOF
usage: $0 options
This script set ownership for all table, sequence and views for a given database
Credit: Based on http://stackoverflow.com/a/2686185/305019 by Alex Soto
Also merged changes from @sharoonthomas
OPTIONS:
-h Show this message
-d Database name
-o Owner
EOF
}
DB_NAME=
NEW_OWNER=
while getopts "hd:o:" OPTION
do
case $OPTION in
h)
usage
exit 1
;;
d)
DB_NAME=$OPTARG
;;
o)
NEW_OWNER=$OPTARG
;;
esac
done
if [[ -z $DB_NAME ]] || [[ -z $NEW_OWNER ]]
then
usage
exit 1
fi
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" ${DB_NAME}` \
`psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" ${DB_NAME}` \
`psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" ${DB_NAME}` ;
do
psql -c "alter table \"$tbl\" owner to ${NEW_OWNER}" ${DB_NAME} ;
done
@mintsoft
Copy link

mintsoft commented May 4, 2013

Hiya,

I've forked this and added support for a schema other than public and quoted_identifier table names containing whitespace, not the prettiest implementation but it works!

@thm1118
Copy link

thm1118 commented Mar 3, 2014

more simple ,one line code: https://gist.github.com/thm1118/9320610

@jahrmando
Copy link

Great script, Thank you!

@bspkrs
Copy link

bspkrs commented Oct 7, 2014

Here's my fork of this that adds in functions as well: https://gist.github.com/bspkrs/b997ed7f1eb1268f3403
Thanks for the original!

@RockyMM
Copy link

RockyMM commented Mar 16, 2015

Here's my fork that updates tables not in 'pg_catalog' schema https://gist.github.com/RockyMM/dd89aed75f3de9a2cd76 This is since the tables in my database are prevalently not in "public" schema.

@onkar-indellient
Copy link

Thanks a lot, great script!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment