Re: Restrict users from describing table

From: "Andrew Dunstan" <andrew(at)dunslane(dot)net>
To: <mgill(at)pointdx(dot)com>
Cc: <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Restrict users from describing table
Date: 2004-01-04 01:18:43
Message-ID: 4433.24.211.141.25.1073179123.squirrel@www.dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Michael Gill said:
> Hello,
>
> I've tried asking this question elsewhere and have not received a
> satisfactory response.
>
> I want to restrict users of my packaged database from directly
> accessing the data or reading the schema. I would provide access to
> the read-only data through functions (which works well in PG). I find
> that \d will expose the structure even though the user can't select:
>
> movies=> \d codeset.first_table
> Table "codeset.first_table"
> Column | Type | Modifiers
> --------+---------+-----------
> col1 | integer |
> col2 | integer |
>
> movies=> select * from codeset.first_table;
> ERROR: permission denied for schema codeset
>
> Is there any way to hide the structure from a particular user. I can't
> use Postgresql if I can't encapsulate our intellectual property.
>

How will purchasers of your product run pg_dump if the superuser can't get
at the database schema?

The only way I can see to do this in general is some sort of filter layer
between the database and the user.

I'm mildly dubious of the IP value of a database schema, I must confess. I
guess you could also play funny games with the column and table names to
obscure the semantics, at the obvious cost of a maintenance nightmare.

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2004-01-04 01:25:21 psql \d option list overloaded
Previous Message Andrew Dunstan 2004-01-04 01:07:36 Re: PL/Java issues