From: | Peter Bex <Peter(dot)Bex(at)xs4all(dot)nl> |
---|---|
To: | Dmitriy Igrishin <dmitigr(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Advice needed on application/database authentication/authorization/auditing model |
Date: | 2010-10-22 16:13:31 |
Message-ID: | 20101022161331.GD9770@frohike.homeunix.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Fri, Oct 22, 2010 at 12:21:17AM +0400, Dmitriy Igrishin wrote:
> Hey Tony,
>
> 2010/10/21 Tony Cebzanov <tonyceb(at)andrew(dot)cmu(dot)edu>
>
> > I have a web application with a Postgres backend. In my initial
> > prototype, I decided not to have a Postgres database user created for
> > each application user, opting instead to use my own users table.
> >
> IMO, you are trying to reinvent the wheel. Although, you may do it just for
> fun. :-)
This is an interesting statement and I've wondered about this a couple
of times before. It seems very common practice (at least with web
applications) to access a database from one user and do all
authentication and authorization checking in the application.
Is this a bad idea? At first glance, it would indeed seem very
logical to make an application user match a database user, but how do
you do row-level permission checking?
For instance, very often I've had the situation where a web app stores
users, companies and <whatever>s. The whatevers can be accessed only
to either the user who created them, or when they are either company-wide
assets or the user has company-wide privileges, can be accessed only
when the whatever was made by a user from the same company.
As far as I can see, this would imply either creating views on the
<whatever> for every user (or company?), or manually crafting queries
to do the same. The latter is of course what most webapps do, and it is
a frequent cause of errors and, hence, vulnerabilities.
I'd love to hear some good advice on what has worked well for others.
Cheers,
Peter
--
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
is especially attractive, not only because it can be economically
and scientifically rewarding, but also because it can be an aesthetic
experience much like composing poetry or music."
-- Donald Knuth
From | Date | Subject | |
---|---|---|---|
Next Message | Gauthier, Dave | 2010-10-22 16:14:01 | pg view of table columns needed for scripting |
Previous Message | Dmitriy Igrishin | 2010-10-22 16:02:53 | Re: Advice needed on application/database authentication/authorization/auditing model |