Re: CREATE RULE problem/question requesting workaround

From: Chris Travers <chris(at)travelamericas(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: CREATE RULE problem/question requesting workaround
Date: 2003-12-08 14:53:16
Message-ID: 1070895195.29122.36.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, 2003-12-08 at 01:39, Tom Lane wrote:

>
> Is it really not possible to express what you need with plain old SQL
> permissions? It seems like you are going out of your way to avoid the
> obvious solution.

Thanks-- as you can see, that is what the application was *designed* to
use. The problem is porting the application which was designed under
the assumption that every user would have a database account into an
environment where that is not possible. In the new environment, only a
few user accounts will exist and these will be used by many users.
Therefore I can only assume one user account for the entire application.

BTW, I have figured out the last of my issues, and I now have a working
solution after a EUREKA moment today... FWIW, here is the solution. In
writing the utilities to make this solution work, I have composed a
number of other helpful utilities which others may find of use.

Here is the solution:

CREATE SCHEMA shadow;

SELECT move_relation('my_table', 'public', 'shadow');
-- move_relation is a custom function I wrote

CREATE VIEW my_table AS
SELECT *, oid FROM shadow.my_table
WHERE (SELECT check_func());
-- I then programatically add insert, update, and delete rules
-- check_func() returns BOOL, controlling whether the query returns any
-- rows. It can also raise an exception, causing the transaction to
-- abort.

I finally (a few moments ago) finally solved the last problem I was
having which was a permissions issue. Now it works well and has no
known issues. Not quite as elegant as I had hoped, but far more elegant
than I had feared.

Because this package also by necessity also contains a number of other
useful functions I may send it to the HACKERS list.

Best Wishes,
Chris Travers

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Gellert, Andre 2003-12-08 14:54:01 Re: Where to find information about implementing full-t
Previous Message Ed L. 2003-12-08 14:19:26 Re: corruption diag/recovery, pg_dump crash