2013-11-25 1 views
1

У меня есть несколько баз данных, каждый из которых имеет несколько схем. Что-то вроде этого:Как ограничить доступ к схемам?

db1 
    schema1 
    schema2 
db2 
    schema1 
    schema2 
db3 
    schema1 
    schema2 

мне нужно предоставить доступ к someuser * только * db1.schema2.

В pg_hba.conf я могу ограничить, какой пользователь подключается к базе данных. И в схеме1 я могу отменить использование и создать привилегии.

В данный момент someuser может подключаться только к db1 и может создавать таблицы в схеме2 не в схеме1.

Однако пользователь может просмотреть структуру таблиц в схеме1.

Можно ли избежать someuser для просмотра структуры таблиц в схеме1?

ответ

3

Во-первых, схемы не используются в hba.conf flie. То, что вы ищете, это просто гранты и аннулирование. Вы хотите отменить «использование» схемы из роли или, возможно, публичной роли. Согласно документации, есть еще другие способы (т. Е. Системные таблицы) для запроса этой информации, но она скроет ее с передней стороны. Короче говоря, нет никакого способа полностью отрицать все способы видеть описание таблицы, и, по-видимому, дизайнеры не видят необходимости реализовать такую ​​функцию. См обсуждение here

Аннулирование использование схемы:

revoke usage on schema myschema from myrole 
+1

Ну, спасибо. Я уже отозвал использование схемы для _someuser_. Это ограничивает просмотр данных, но не описание таблицы. Жаль, что я не могу скрыть эту информацию от моих пользователей. – ceochronos

+0

Должен ли я отмечать этот вопрос в ответ? Технически был дан ответ, но не с ответом, которого я ожидал. – ceochronos

+0

Лично я бы сказал, да. Если существуют доказательства «лучшего» ответа или если вы хотите подождать и посмотреть, но из моих исследований (и я изучил этот вопрос раньше), я не думаю, что вы получите лучший ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^