Re: [Bulk] General advice on database/web applications - Mailing list pgsql-general

From Merlin Moncure
Subject Re: [Bulk] General advice on database/web applications
Date
Msg-id b42b73150603271340r15e3645h99720459b6bd3dc2@mail.gmail.com
Whole thread Raw
In response to Re: [Bulk] General advice on database/web applications  ("Mark Feller" <mfeller@mgako.com>)
Responses Re: [Bulk] General advice on database/web applications  ("Jonel Rienton" <jonel@rientongroup.com>)
List pgsql-general
> I have not yet implemented the database, and I am VERY reluctant to put the
> full db outside our "main" firewall because of the need to protect sensitive

this is natural.  One solution is to put 2nd nic on the web server
(carefully firewalled) for connections to the database.  Theres lots
of solutions to the problem.

> info.  So my question, is how do the applications on the webserver interface
> with the database?  My one thought for a solution is to have a more limited
> database hosted on the same machine as the webserver that would have
> customer account number, price lists, and product lists--enough for an order

I personally don't think this is a very good solution.  You are
complicating your architecture where database user accounts are much
more natural and appropriate.  create a web user and explicitly grant
permisions to that user.  This gives you the flexibility to do real
stuff when you want to via functions...pg functions can operate under
a elevated security when you want them to (check out create
function...invoker/definer)

> to be taken.  Credit info, etc. is stored someplace more secure.  After an
> order is taken, the webserver/database/something then forwards an "order
> placed" type of message to the main database.  Maybe a synch is done between
> webserver database and main database every five minutes, where the main
> database pulls any new orders, and pushes any updated part lists, pricing
> etc. to the webserver db?

again, I don't like this. you have to maintain the syncing proces and
you are introducing  timing issues, as well as greatly complicating
constring checking.  Factor in the complexity and the load.  I would
suggest doing this only as a last resort.  If you must do this, I
would suggest using the slony replicator.

> My question, is would such a scheme be practical, or is there a "best
> practices" type of approach that I should consider instead, such as the
> suggestion in your next-to-last paragraph?

My suggestion would be to familiarize yourself with database security.
 If using postgres, this means reading over the administration
chapters very carefully, as well as grant/revoke usage, etc.

Merlin

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Issues with restoring
Next
From: "Jonel Rienton"
Date:
Subject: Re: [Bulk] General advice on database/web applications