清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/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= PGSQL_USER=postgres 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 -U $PGSQL_USER -qAt -c "select tablename from pg_tables where schemaname = 'public';" ${DB_NAME}` \ `psql -U $PGSQL_USER -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" ${DB_NAME}` \ `psql -U $PGSQL_USER -qAt -c "select table_name from information_schema.views where table_schema = 'public';" ${DB_NAME}` ; do psql -U $PGSQL_USER -c "alter table \"$tbl\" owner to ${NEW_OWNER}" ${DB_NAME} ; done