Ändern Sie den Eigentümer der PostgreSQL-Datenbank
Wir können die Abfrage REASSIGN OWNED
verwenden, um den Besitz der bestehenden Datenbank zu ändern. Der neue Benutzer kann alle Abfragen durchführen, die der vorherige Eigentümer ausführen konnte.
Ändern Sie den Besitz einer Datenbank in Psql
Lassen Sie uns zu Demonstrationszwecken eine neue Datenbank mit einem alten Eigentümer und einem neuen Benutzer erstellen. Weisen Sie dann den neuen Benutzer als Besitzer der neuen Datenbank zu.
Erstellen einer Datenbank:
postgres=# create DATABASE SELL;
CREATE DATABASE
postgres=#
Neuen Benutzer anlegen:
postgres=# CREATE USER TEST_USER WITH PASSWORD '~test~';
CREATE ROLE
postgres=#
Der aktuelle Besitzer der Tabelle Verkaufen
:
SELECT dbs.datname, roles.rolname
FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
WHERE dbs.datdba = roles.oid;
Zunächst haben wir uns als postgres
eingeloggt; das war unser Benutzername. Wenn wir nun die obige Abfrage ausführen, wird mir der Eigentümer der vorhandenen Datenbank in Postgres angezeigt:
datname | rolname
-----------+----------
template0 | postgres
template1 | postgres
sell | postgres
postgres | postgres
(4 rows)
Wir können sehen, dass die Tabelle Sell
den Besitzer postgres
hat. Lassen Sie uns den Besitzer mit dem ‚test_user‘ ändern.
So werden wir es machen:
ALTER DATABASE SELL OWNER TO TEST_USER;
Und hier ist die Ausgabe:
postgres=# ALTER DATABASE SELL OWNER TO TEST_USER;
ALTER DATABASE
postgres=# SELECT dbs.datname, roles.rolname
postgres-# FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
postgres-# WHERE dbs.datdba = roles.oid;
datname | rolname
-----------+-----------
template0 | postgres
template1 | postgres
postgres | postgres
sell | test_user
(4 rows)
postgres=#
Sie können sehen, dass der Datenbankbesitzer namens sell
in test_user
geändert wurde.
Um mehr über den altering database-Befehl zu erfahren, folgen Sie der offiziellen Dokumentation.