From: Düster Horst <Horst.Duester@bd.so.ch>
To: mabewlun <mabewlun@gmail.com>
Cc: pgsql-admin <pgsql-admin@postgresql.org>
Subject: Re: Deny access materialzsed view
Date: Wed, 24 Nov 2010 14:56:56 +0100
Message-ID: <H00002eb08444904.1290607016.srsofaioi6145.ktso.ch@MHS> (raw)
Hi Szymon Guz
Thanks a lot for your response. I think the SECURITY DEFINER doesn't
solve my problem. Here an example (stupid I know but just for
explanation):
1. I have created the view myView (select id from myTable) with an
insert rule and I have created a table myTable (id integer, time
timestamp).
2. Now I add a record to myView with: insert into myView (id) values
(1).
3. The insert rule adds the value of id to myTable and sets a timestamp
additionally
My problem now is that all users which have write access to myView
shoudn't have write access to myTable to avoid manipulations of myTable
apart from the logic of the myView rule. In the present configuration
they must have write access to myTable for inserting data at the moment.
Only the db admin should have write access to myTable and nobody else.
Additionally in this approach there is no function. As the result I
can't use the SECURITY DEFINER statement. As I understand does the
SECURITY DEFINER statement only modify the execution rights of a
function.
Maybe you have further hints or ideas?
Regards
Horst
------------------------------------------------
Dr. Horst Düster
Stv. Amtschef / kantonaler GIS-Koordinator
Kanton Solothurn
Bau- und Justizdepartement
Amt für Geoinformation
SO!GIS Koordination
Rötistrasse 4
CH-4501 Solothurn
Telefon ++41(0)32 627 25 32
Mobil ++41(0)79 511 54 12
Telefax ++41(0)32 627 22 14
mailto:horst.duester@bd.so.ch
http://www.agi.so.ch
-----Ursprüngliche Nachricht-----
Von: Szymon Guz [mailto:mabewlun@gmail.com]
Gesendet am: Mittwoch, 24. November 2010 09:17
An: Düster Horst
Cc: pgsql-admin
Betreff: Re: [ADMIN] Deny access materialzsed view
On 24 November 2010 08:57, Düster Horst < Horst.Duester@bd.so.ch>
wrote:
Hi
I created a materialized view to manage editings via a real
postgres view. The view has some rules to deliver all inserts,
updates and deletes to the underlaying table with the appropriate
privileges, insert, update and delete, for members of an editing
role. To avoid editings on the underlaying table I want to deny
any access except select access to the table for all users. Does
anyone outside has an idea how to manage the described situation?
I'll appreciate any hint.
Regards
Horst
-
Hi,
I'd use the security definer/invoker mechanism (
http://www.postgresql.org/docs/9.0/interactive/sql-createfunction.htm
l). This way you could create special user who is the owner of the
rule functions, and can read/write to the table, and normal user, who
cannot read/write to the table, but can run those functions.
regards
Szymon Guz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: Horst.Duester@bd.so.ch, mabewlun@gmail.com
Subject: Re: Deny access materialzsed view
In-Reply-To: <H00002eb08444904.1290607016.srsofaioi6145.ktso.ch@MHS>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox