Обсуждение:

Поиск
Список
Период
Сортировка

От
"Houfek, Thomas"
Дата:

We are moving from Oracle to PostgreSQL and have hit a hitch.

 

We have a few views that we want to expose to partners at another institution.  However, we do not want them to be able to see the schemas or even really the names of our other databases.  I have found no way to hide databases and tables from users within a database cluster.  It appears that people have been complaining about not being able to do this in PG, going a long way back.   Is there presently some way to do this, that I have missed?   If not, what approach would you recommend to accomplish what we want to do here?

 

I appreciate any help you can give me!

 

Thomas

 

(Sent this before I subscribed to the list.  It looked like not being subscribed was holding up the post.  I don’t mean to spam you with reposts;  sorry for any trouble....)

 

---

Thomas Houfek

Project Manager, Center for Stem Cell Biology

Vanderbilt University Medical Center

thomas.houfek@vanderbilt.edu

(615) 322-9310

 

Re:

От
Scott Marlowe
Дата:
On Wed, Oct 28, 2009 at 1:52 PM, Houfek, Thomas
<thomas.houfek@vanderbilt.edu> wrote:
> We are moving from Oracle to PostgreSQL and have hit a hitch.
>
> We have a few views that we want to expose to partners at another
> institution.  However, we do not want them to be able to see the schemas or
> even really the names of our other databases.  I have found no way to hide
> databases and tables from users within a database cluster.  It appears that
> people have been complaining about not being able to do this in PG, going a
> long way back.   Is there presently some way to do this, that I have
> missed?   If not, what approach would you recommend to accomplish what we
> want to do here?

Yeah, pgsql just doesn't have that level of isolation built into, and
probably won't for some time, as most users don't need it.  There are
a few options.

1: Set up a replicant with slony of just the tables you want them to
see.  If you only want the view, you could use a materialized view on
the source and replicate that.
2: Use a web service to expose the data set without exposing the
database directly.

No matter how much security my db had I don't think I'd ever let a
remote customer access it directly (the main db that is, a clone with
just the right data is a different story.)