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.