Hilft Dir http://www.archonet.com/pgdocs/grant-all.html weiter?
Andreas
Hallo Forum,
ich habe folgendes Problem:
1. Ich habe mit pg_dump eine Sicherung meiner Datenbank erstellt.
2. Diese Sicherung habe ich auf einem anderen Rechner mit pg_restore wiederhergestellt.
2.1 Ich musste pg_restore mit --no-owner durchführen. Da diese datenbank einen anderen Benutzer hat sonst hat pg_restore nicht geklappt.
2.2 Das Problem ist nun das alle Tabellen als Eigentümer postgres haben. Der eigentliche Benutzer hat keinen Zugriff auf die Tabellen.
einfür jede Tabelle würde zu lange dauern. Es sind viele Tabellen vorhanden.Code:ALTER TABLE name OWNER
Meine Frage nun:
Wie kann ich den Eigentümer aller Tabellen auf einmal setzen?
Grüsse,
HAKSI
Hilft Dir http://www.archonet.com/pgdocs/grant-all.html weiter?
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo Andreas,
wo gibt man den Namen der Datenbank an? Ich schaue mir gerade das Shell Skript an????
Gruss,
Haksi
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo Andreas,
vielen dank für die Tipps
Mal eine andere Frage:
Kann ich schon bei pg_restore schon sagen das die angelegten Tabellen den von mir definierten Benutzer gehören sollen und nicht dem der in der Archivdatei definiert ist?
Gruss,
Hakan
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo,
ich habe es gelöst
für alle die sich mit ähnlichem Problem zu tun haben oder haben sollten. Ich habe ein Skript geschrieben das von allen Tabellen den Eigentümer setzt.
Viel Spass....Code:#!/bin/ash mydb=thedbname myuser=thedbuser SQL="SELECT relname FROM pg_class WHERE (relkind = 'r' OR relkind = 'S') AND relname !~ '^pg_' ORDER BY relname" OBJ=`su - postgres -c "psql -t -c \"$SQL \" $mydb OBJ=`echo ${OBJ} | sed 's/ /, /g'` ############################################################### #### Hier werden alle Elemente von $str durchlaufen als #### Trennzeichen wird "," benutzt ############################################################### str=$OBJ while [ "$str" != "$sub" ]; do sub=${str/\,*/} str=${str/$sub,/} SQL="ALTER TABLE $sub OWNER TO $myuser" su - postgres -c "psql -c \"$SQL \" $mydb" done
Grüsse,
Haksi
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen