[Gfoss] Problemi con i permessi su viste in PostgreSQL

Rossin Pietro pietro.rossin a arpa.fvg.it
Mar 17 Maggio 2016 13:10:58 CEST


Buon giorno
Per qualche pia anima che mi toglie da un problema che non riesco a risolvere..

Sono in PostgreSQL 9.4 su server debian.

Utente "mestesso" membro di db_admins (amministratori al più alto livello sotto postgres, creano gli schemi in cui poi gli amministratori degli schemi aggiungono tabelle che possono essere editate/selezionate a seconda del gruppo)
Ogni schema ha i suoi amministratori che possono fare e disfare all'interno dello schema, non in giro per altri schemi.
Ogni schema ha poi un gruppo editors (per editing su tabelle) ed un gruppo viewers (select)

Quindi utente mestesso:
**********
CREATE ROLE mestesso  LOGIN
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT db_admins TO mestesso ;
**************
Gruppo db_admins:
******************
CREATE ROLE db_admin
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT basi _admins TO db_admins;
GRANT catasto_admins TO db_admins;
GRANT altro...
******************

Ho uno schema basi così configurato:
************************
CREATE SCHEMA basi  AUTHORIZATION db_admins;

GRANT ALL ON SCHEMA basi TO db_admins;
GRANT ALL ON SCHEMA basi TO basi _admins;
GRANT USAGE ON SCHEMA basi  TO basi_ editors;
GRANT USAGE ON SCHEMA basi TO basi_viewers;
************************

Ed uno schema catasto così:
*************************
CREATE SCHEMA catasto  AUTHORIZATION db_admins;

GRANT ALL ON SCHEMA catasto TO db_admins;
GRANT ALL ON SCHEMA catasto  TO catasto _admins;
GRANT USAGE ON SCHEMA catasto TO catasto_editors;
GRANT USAGE ON SCHEMA catasto TO catasto_viewers;
***********************

In catasto ho creato una vista per selezionare gli scarichi nei comuni così:
**************************
CREATE OR REPLACE VIEW catasto.scarichi_comuni AS
 SELECT a.id,
    b.nome,
    b.cod_istat,
   FROM catasto.scarichi a,
    basi.comuni  b
  WHERE st_contains(b.geom, a.geom);

ALTER TABLE catasto.scarichi_comuni  OWNER TO catasto_admins;
GRANT ALL ON TABLE catasto.scarichi_comuni  TO db_admins;
GRANT ALL ON TABLE catasto.scarichi_comuni  TO catasto_admins;
GRANT SELECT, UPDATE, INSERT, DELETE, TRIGGER ON TABLE catasto.scarichi_comuni  TO catasto_editors;
GRANT SELECT ON TABLE catasto.scarichi_comuni  TO catasto_viewers;
*************************

La tabella basi.comuni  e':
*************************
CREATE TABLE basi.comuni
 (
  id serial NOT NULL,
  geom geometry(MultiPolygonZ,3004),
  nome character varying(255),
  cod_istat character varying(255),
  CONSTRAINT comuni_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE basi.comuni  OWNER TO basi_admins;
GRANT ALL ON TABLE basi.comuni  TO basi_admins;
GRANT ALL ON TABLE basi.comuni  TO db_admins;
GRANT SELECT, UPDATE, INSERT, DELETE, TRIGGER ON TABLE basi.comuni  TO basi_editors;
GRANT SELECT ON TABLE basi.comuni  TO basi_viewers;
********************************

Ora
In PgAdminIII connesso come utente "mestesso" se eseguo la vista ottengo un errore del tipo:

"ERROR: Permission denied for relation comuni"

Sempre da PGAdminIII sempre come "mestesso" eseguo il select della vista

**********
SELECT a.id,
    b.nome,
    b.cod_istat,
   FROM catasto.scarichi a,
    basi.comuni  b
  WHERE st_contains(b.geom, a.geom);
************

tutto funziona

Dove sbaglio?????
Grazie
Pietro Rossin



AVVISO DI RISERVATEZZA Informazioni riservate possono essere contenute nel messaggio o nei suoi allegati. Se non siete i destinatari indicati nel messaggio, o responsabili per la sua consegna alla persona, o se avete ricevuto il messaggio per errore, siete pregati di non trascriverlo, copiarlo o inviarlo ad alcuno. In tal caso vi invitiamo a cancellare il messaggio ed i suoi allegati. Grazie.
CONFIDENTIALITY NOTICE Confidential information may be contained in this message or in its attachments. If you are not the addressee indicated in this message, or responsible for message delivering to that person, or if you have received this message in error, you may not transcribe, copy or deliver this message to anyone. In that case, you should delete this message and its attachments. Thank you.


Maggiori informazioni sulla lista Gfoss