habe gerade eine DB von MySql zu PG portiert.
Wenn ich nun versuche ein Select abzusetzen, bekomme ich die Fehlermeldung: permission denied for relation .
Hoffe ihr könnt mir weiterhelfen…
Grüsse
p.s.
Wie kann man in PG eisehen, welche User gesetzt worden sind, mit die Rechte dazu?
15:10 < akretschmer> ??grantall
15:10 < rtfm_please> For information about grantall
15:10 < rtfm_please> see http://pgedit.com/public/sql/acl_admin/index.html
15:10 < rtfm_please> or http://unf.be/postgresql/postgres_grant_all.perl
15:10 < rtfm_please> or http://www.archonet.com/pgdocs/grant-all.html
Das ist schon klar, aber will doch auch nicht gleich 48 Tabellen einzeln den User setzen. Sollte doch reichen, wenn man diesen einmal für die DB setzt, oder?
In ner Doku was ich mir angelesen habe steht ja folgendes drin…
Command: GRANT
Description: define access privileges
Syntax:
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
[,…] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, …]
TO { username | GROUP groupname | PUBLIC } [, …] [ WITH GRANT OPTION ]
Nun ja. 4 ist ein INT und kein BOOL. So wie z.B. auch ein 29.02.2003 ein falsches Datum wäre. Allein die Tatsache, daß MySQL so was annimmt macht es noch nicht wahr.
normalerweise wuerde man sich eine sog. Rolle im sinne von Gruppe erzeugen (keine Login-Rolle)
für jede Tabelle die du erzeugst GRANTest du diese Gruppe. Wenn du dann einen neuen User anlegst musst du diesen nur dieser Gruppe zuweisen (mit INHERIT - also um Rechte von Gruppe erben) … damit darf der User automatisch das, was die Gruppe darf.
Das macht man halt einmal, beim erzeugen der Tabellen. Bei PG kann man da sogar tricksen … du erzeugst ne Login-Rolle - logst dich ein und erzeugst mit dieser Login-Rolle dein Modell - auch ein Restore von einem Backup geht. Damit ist diese Login-Rolle dann OWNER deiner Tabellen. Im Nachhinein darfst dann mit ALTER ROLE aus dieser Rolle eine Gruppe machen … spart halt Arbeit.