From: | "rene hankel" <rene(dot)hankel(at)avt-verkehrstechnik(dot)de> |
---|---|
To: | <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Insert-problem bei zugriff mittels login- und gruppenrole |
Date: | 2006-05-04 10:19:15 |
Message-ID: | 003501c66f64$32b0fb30$6e3ca8c0@avtndhc01 |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
> -----Ursprüngliche Nachricht-----
> Von: pgsql-de-allgemein-owner(at)postgresql(dot)org
> [mailto:pgsql-de-allgemein-owner(at)postgresql(dot)org] Im Auftrag von A.
> Kretschmer
> Gesendet: Mittwoch, 3. Mai 2006 16:52
> An: pgsql-de-allgemein(at)postgresql(dot)org
> Betreff: Re: [pgsql-de-allgemein] Insert-problem bei zugriff mittels
> login- und gruppenrole
> Wichtigkeit: Hoch
>
> am 03.05.2006, um 16:01:27 +0200 mailte rene hankel folgendes:
> > das ist soweit ok, es sei denn es gibt gegenvorschlaege.
>
> passt scho so...
>
>
> > so ist. Jetzt will ich mein 1. insert machen und siehe da, das wird
> > gemeldet:
> >
> > ---> 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")
> >
> > Ich habe keine ahnung was er von mir will!
> > Mein query lautet
> >
> > ---> INSERT INTO sonstiges.tbl_favoriten (anlage_id, benutzer_id)
> > ---> VALUES
> > (72006001, 17);'
>
>
> Dein Query paßt irknwie überhaupt nicht zur Fehlermeldung.
> Sind hier Trigger im Spiel, oder Rules? Falls ja: man kann beim
> Erzeugen von SP auch mit ... SECURITY [DEFINER | INVOKER] da einiges
> machen...
>
>
> > Die frage ist, was mach ich falsch???
>
> Mein /dev/glaskugel ist grad zur Politur...
> Vielleicht kannst Du in der Zwischenzeit Deine Umstände
> *etwas* genauer darlegen?
>
>
>
> Andreas
> --
> Andreas Kretschmer (Kontakt: siehe Header)
> Heynitz: 035242/47215, D1: 0160/7141639
> GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
> === Schollglas Unternehmensgruppe ===
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
Die rechte scheinen alle zu stimmen...denk ich
GRANT SELECT ON TABLE anlagen.tbl_anlage TO grp_dbavt_php;
GRANT SELECT, INSERT, DELETE ON TABLE sonstiges.tbl_favoriten TO
grp_dbavt_php;
Ich hoffe ich kann meine 'Umstände *etwas* genauer darlegen' :D
Auch falls ein select auf tabelle 'anlagen.tbl_anlage' notwendig ist,
die rechte sind vorhanden, genauso wie auf tabelle 'benutzer.tbl_benutzer'!
Und das ist die tabelle fuer das insert:
CREATE TABLE sonstiges.tbl_favoriten
(
-- Vererbt: erstellt_am timestamp DEFAULT ('now'::text)::timestamp(6)
without time zone,
-- Vererbt: erstellt_benutzer_id int4 DEFAULT 0,
-- Vererbt: aenderung_am timestamp,
-- Vererbt: aenderung_benutzer_id int4 DEFAULT 0,
-- Vererbt: geloescht_am timestamp,
-- Vererbt: geloescht_benutzer_id int4 DEFAULT 0,
-- Vererbt: geloescht bool DEFAULT false,
id int8 NOT NULL DEFAULT
nextval(('sonstiges.seq__tbl_favoriten__id'::text)::regclass), -- primarykey
anlage_id int8 NOT NULL, -- foreignkey -> tbl_anlage.id
benutzer_id int8 NOT NULL, -- foreignkey -> tbl_benutzer.id
CONSTRAINT pkey__tbl_favoriten__id PRIMARY KEY (id),
CONSTRAINT fkey__tbl_favoriten__anlage_id FOREIGN KEY (anlage_id)
REFERENCES anlagen.tbl_anlage (id) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT fkey__tbl_favoriten__benutzer_id FOREIGN KEY (benutzer_id)
REFERENCES benutzer.tbl_benutzer (id) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
) INHERITS (virtual.tbl_tupelaenderung)
WITHOUT OIDS;
ALTER TABLE sonstiges.tbl_favoriten OWNER TO usr_dbavt_admin;
GRANT SELECT, INSERT, DELETE ON TABLE sonstiges.tbl_favoriten TO
grp_dbavt_php;
COMMENT ON TABLE sonstiges.tbl_favoriten IS 'tabelle mit den
favoriten-anlagen der benutzer';
COMMENT ON COLUMN sonstiges.tbl_favoriten.id IS 'primarykey';
COMMENT ON COLUMN sonstiges.tbl_favoriten.anlage_id IS 'foreignkey ->
tbl_anlage.id';
COMMENT ON COLUMN sonstiges.tbl_favoriten.benutzer_id IS 'foreignkey ->
tbl_benutzer.id';
CREATE INDEX fki__tbl_favoriten__anlage_id
ON sonstiges.tbl_favoriten
USING btree
(anlage_id);
CREATE INDEX fki__tbl_favoriten__benutzer_id
ON sonstiges.tbl_favoriten
USING btree
(benutzer_id);
CREATE UNIQUE INDEX pki__tbl_favoriten__id
ON sonstiges.tbl_favoriten
USING btree
(id);
CREATE OR REPLACE RULE oninsert_nodouble AS
ON INSERT TO sonstiges.tbl_favoriten
WHERE 0 < (( SELECT count(tbl_favoriten.id) AS count
FROM sonstiges.tbl_favoriten
WHERE tbl_favoriten.anlage_id = new.anlage_id AND
tbl_favoriten.benutzer_id = new.benutzer_id)) DO INSTEAD NOTHING;
COMMENT ON RULE oninsert_nodouble ON sonstiges.tbl_favoriten IS 'sorge
dafuer das es keine doppelten eintraege von anlagen und usern in den
favoriten gibt';
CREATE TRIGGER set__aenderung_am
BEFORE INSERT OR UPDATE
ON sonstiges.tbl_favoriten
FOR EACH ROW
EXECUTE PROCEDURE virtual.tbl_tupelaenderung__set__aenderung_am();
COMMENT ON TRIGGER set__aenderung_am ON sonstiges.tbl_favoriten IS
'automatisches setzen des timestamp der letzten aenderung';
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Kretschmer | 2006-05-04 11:04:26 | Re: Insert-problem bei zugriff mittels login- und gruppenrole |
Previous Message | Walter Haslbeck | 2006-05-03 19:55:32 | Re: Insert-problem bei zugriff mittels login- |