Insert-problem bei zugriff mittels login- und gruppenrole

meine abfrage:

SET ROLE grp_dbavt_php;

INSERT INTO anlagen.tbl_anlage 
(
	id, 
	anlagentyp_id, 
	hersteller_id, 
	planungsart_id, 
	avtnr, 
	kundennr, 
	standort, 
	bezeichnung, 
	ip, 
	telefon
) 
VALUES 
(
	72006004, 
	17, 
	7, 
	1, 
	'-', 
	'-', 
	'Guxhagen', 
	'Guxhagen L3221/K154', 
	'172.0.1.1', 
	01723764118
);

meine fehlermeldung:

ERROR:  permission denied for schema anlagen
CONTEXT:  SQL statement "SELECT 1 FROM ONLY "anlagen"."tbl_anlagentyp" x WHERE "id" = $1 FOR SHARE OF x"

keinen angst die gruppenrolle hat insert- und select-rechte!
die ‘tabelle anlagen.tbl_anlage referenziert’ auf tabelle ‘anlagen.tbl_anlagentyp’

ich habe keine ahnung was er will! ich habe sogar der rolle ‘public’ auf alles alle rechte gegeben…interessiert ihn blos nicht!

brauche dringend hilfe!!!

hi,

nur kurz bevor ich weg bin :wink:

hast du die rechte auf das schema “anlagen” vergeben oder auf “public”?

cu tb.

es gibt bei mir keine schema public mehr.

ich meinte ich vergab rechte ala

GRANT ALL ON TABLE anlagen.tbl_anlage TO public;

ich habe festgestellt, das wenn ich ich eine eintrag in eine andere tabelle machen moechte ala

INSERT INTO anlagen.tbl_anlage (id, anlagentyp_id, ...) VALUES (72006006, 17, ...);

ich diese fehlermeldung bekomme

ERROR:  permission denied for relation tbl_anlagentyp
CONTEXT:  SQL statement "SELECT 1 FROM ONLY "anlagen"."tbl_anlagentyp" x WHERE "id" = $1 FOR SHARE OF x"

ich nehme stark an das diese abfrage, die NICHT von mir ist, die CONSTRAINT-bedingung prueft, ob die id 17 in der tabelle tbl_anlagentyp vorhanden ist.

loesche ich jetzt den CONSTRAINT auf anlagen.tbl_anlagentyp.id kommt die meldung

ERROR:  permission denied for relation tbl_anlage
	CONTEXT:  SQL statement "SELECT 1 FROM ONLY "anlagen"."tbl_anlage" x WHERE "id" = $1 FOR SHARE OF x"
	SQL statement "INSERT INTO zwischentbl.ztbl_gruppe_anlage (gruppe_id, anlage_id) VALUES ( $1 ,  $2 )"
	PL/pgSQL function "tbl_anlage__access__supervisor" line 7 at SQL statement

loesche ich dann folgenden trigger:

CREATE OR REPLACE FUNCTION                                                                          anlagen.tbl_anlage__access__supervisor()
RETURNS "trigger" AS
	$BODY$DECLARE
		var_rec		RECORD;
	BEGIN
		-- zuerst die id der gruppe 'Supervisor' holen
		SELECT id FROM benutzer.tbl_gruppe WHERE md5(bezeichnung) =
md5('Supervisor') INTO var_rec;
		--- jetzt den zugriff fuer supervisor erstellen
		INSERT INTO zwischentbl.ztbl_gruppe_anlage (gruppe_id,
anlage_id) 
		VALUES (var_rec.id, new.id);
		--- 
		RETURN NEW;
	END;$BODY$
	LANGUAGE 'plpgsql' VOLATILE;

kann ich mein insert ausfuehren!!!

ich verstehs nicht! der geloeschte CONSTRAINT ist nicht der einzigste der existiert und auf die entsprechende tabelle existieren select-recht. die rechte fuer das select und das insert innerhalb des triggers exitieren auch! weiterhin existieren auch dort noch 2 weitere trigger, die aber nicht auf andere tabellen zugreifen.

kann irgendjemand einen fehler erkennen den ich machen? es muss doch gehen das ich ein insert ausfuehren kann.