пятница, 16 сентября 2016 г.

PostgreSQL Rule The Permissions

CREATE DATABASE  {DATABASE_NAME} ENCODING 'UTF8' OWNER {USER_NAME} TEMPLATE template0;

psql {DATABASE_NAME} -tc "select 'grant all on '||relname||' to {USER_NAME};' from pg_stat_user_tables" | psql {DATABASE_NAME}

psql {DATABASE_NAME} -tc "select 'ALTER TABLE ' || table_name || ' OWNER TO {USER_NAME};' from information_schema.tables where table_schema = 'public';" | psql {DATABASE_NAME}

psql {DATABASE_NAME} -tc "SELECT 'ALTER SEQUENCE '|| sequence_schema || '.' || sequence_name ||' OWNER TO {USER_NAME};' FROM information_schema.sequences WHERE NOT sequence_schema IN ('pg_catalog', 'information_schema') ORDER BY sequence_schema, sequence_name;" | psql {DATABASE_NAME}

psql {DATABASE_NAME} -tc "SELECT 'ALTER VIEW '|| table_schema || '.' || table_name ||' OWNER TO {USER_NAME};' FROM information_schema.views WHERE NOT table_schema IN ('pg_catalog', 'information_schema') ORDER BY table_schema, table_name;" | psql {DATABASE_NAME}


pg_dump -c -U postgres --no-owner  > dump.psql