www/content/blog/miscellaneous/postgresql-reassign.md

22 lines
1 KiB
Markdown
Raw Normal View History

2020-04-28 17:29:52 +02:00
---
title: "Change owner on a postgresql database and all tables"
date: 2012-04-20
2021-03-12 18:12:41 +01:00
description: How to change owner on a postgresql database and all tables
tags:
- PostgreSQL
2020-04-28 17:29:52 +02:00
---
2021-03-12 18:12:41 +01:00
## The solution
Here is the sequence of commande that will change the owner of all objects in a database from a user named "support" to another named "test-support":
2020-04-28 17:29:52 +02:00
{{< highlight sh >}}
ALTER DATABASE name OWNER TO new_owner
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" YOUR_DB` ; do psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done
2020-04-28 17:29:52 +02:00
for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" YOUR_DB` ; do psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done
for tbl in `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" YOUR_DB` ; do psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done
{{< /highlight >}}
{{< highlight sh >}}
reassign owned by "support" to "test-support";
{{< /highlight >}}