Как предотвратить пользователя от способности видеть другие базы данных и таблицы от других баз данных?

Я хочу создать пользователя пост-ГРЭС, который может получить доступ только к одной базе данных по серверу пост-ГРЭС вообще.

В настоящее время мой поток:

create database database1;
create user user1 with password 'pass';
grant all privileges on database database1 to user1;

но user1 может все еще видеть список dbs, пользователей, таблицы и т.д. Существует ли способ препятствовать тому, чтобы тот пользователь видел ту информацию? Пользователь должен смочь записать в и читать из того дб.

Большое спасибо.

19
задан Jordan Arseno 15 January 2015 в 04:51
поделиться

3 ответа

Каждый пользователь может видеть другие перечисленные базы данных и роли, но никогда не должен видеть таблицы в других базах данных.

Если вы отмените привилегию CONNECT для всех баз данных, кроме выделенной, пользователь не сможет получить доступ к содержимому других баз данных.

Роли и имена баз данных являются глобальными, и их нелегко заблокировать. Вы можете попробовать предложение Фрэнка Хайкенса о выборочном отзыве в системных таблицах, но вы рискуете сделать это. Разработчики PostgreSQL в списках рассылки usenet не рекомендуют вмешиваться в доступ к системным каталогам.

Psql, среди других инструментов, предполагает, что они будут доступны, и плохо работает без них.

Почему так плохо знать имена других баз данных и ролей?

8
ответ дан 30 November 2019 в 05:15
поделиться

ОТМЕНИТЬ разрешения SELECT для information_schema и некоторых разделов в системном каталоге .

2
ответ дан 30 November 2019 в 05:15
поделиться

По умолчанию все создаваемые вами объекты создаются в общедоступной схеме. Кроме того, все пользователи, которых вы создаете, имеют права CREATE и USAGE в общедоступной схеме. Вы должны отозвать CREATE и USAGE для общедоступной схемы для этого пользователя или изменить уровень доступа по умолчанию. Вам также необходимо переместить базу данных, к которой у этого пользователя есть доступ, в схему пользователя или схему, доступную пользователю. См. Схемы DDL в руководстве Postgres.

1
ответ дан 30 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: