Hello !

I'm trying to use postgresql in an application that by design will give
access to users to a subset of the database.

For example for customers access to products_view (wich will only show
public offers), orders (only their own orders).

I'll provide an application as user interface for the data.

For that I'll give for each of then a role in the database that will belong
to a group role customers_group.

The customers_group only has access to the views/functions that I'll
specify.

Till here no problem postgresql do that pretty well.

My concern is once I give login access to any user, even without grant
him/her any access to any database, he/she can using an application like
pgadmin3 view all databases/roles/functions/table-definitions on my server.
And that was not my intention.

Removing all from public doesn't work : revoke all on schema public from
public;

What I think would be the server behavior when I create a role with login
access an say that I only grant access to one view like this:

create role oneuser login;
grant select on somedatabase.someview to oneuser;

In that case when the user login the only thing he/she sees is the view
database.someview, even when they use pgadmin3 to connect.

Actually he/she can see with pgadmin3 : all databases, all roles and it's
right access, all tables on every database (no access to data), all
functions, all triggers, all table definitions.

The above isn't the intention to a user with a restrict view of the
database.

Can I achieve it actually, if not how hard could be to implement that in the
official release ?

Thanks in advance for any feedback/ideas !

Reply via email to