Re: Is this a security risk?

From: Adam Witney <awitney(at)sgul(dot)ac(dot)uk>
To: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Cc: "pgsql-general" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Is this a security risk?
Date: 2008-12-17 14:54:30
Message-ID: 8EBCE14D-7CC8-4EEB-9BB1-FEAB0AAAF6D0@sgul.ac.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On 17 Dec 2008, at 14:44, Albe Laurenz wrote:

> Adam Witney wrote:
>>>> I would like to provide a limited view of my database to some
>>>> users,
>>>> so i thought of creating a second database (I can control access by
>>>> IP
>>>> address through pg_hba.conf) with some views that queried the first
>>>> database using dblink.
>>>
>>> In my opinion dblink is not the right tool for that.
>>> It will require a user account on the "secret" database through
>>> which
>>> dblink accesses it. You'd have to restrict permissions for that user
>>> if you want to keep the thing secure.
>>>
>>> So why not access the "secret" database directly with that user and
>>> get rid of the added difficulty of dblink?
>>>
>>> You can rely on the permission system. Just grant the user the
>>> appropriate
>>> privileges on the necessary objects, and if you need the user to see
>>> only part of the data in a table, create a view for that.
>>
>> thanks for your reply,
>>
>> The user already has permissions within the 'secret' database, but
>> normally they interact with it through a web interface only. I was
>> worried that the user could get in and mess around with other things,
>> such as the sequences which are used to populate primary keys.
>>
>> Also ideally I only wanted to create a read only access to certain
>> parts of the database, I couldn't think of any other way to do it...
>> are there any more standard ways of doing this?
>
> Yes.
>
> You grant read access with GRANT SELECT ON table/view TO user.
>
> It's no less secure than accessing a database as that user via dblink.

thanks again for your email.

The problem is that the user account already has SELECT/UPDATE/INSERT/
DELETE access on the views, as they need it when accessing the
database through the web interface. What i wanted to do is provide a
read only access to only some views (this is for a programmatic
querying API). By using the second database i could restrict access to
this side of it using IP address filtering in the pg_hba.conf file.

thanks again

adam

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-12-17 15:16:54 Re: Planner hints in SELECT queries?
Previous Message Albe Laurenz 2008-12-17 14:44:14 Re: Is this a security risk?