Разрешения базы данных с Postgresql - PullRequest
0 голосов
/ 06 декабря 2011

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

Я понимаю, что строка:

GRANT ALL ON tableName TO joeuser

позволяет этому пользователю получить доступэтот стол и делай все что хочешь.Однако я хочу разрешить пользователю доступ к базе данных databaseName, которая содержит tableName (и все таблицы в databaseName), но не ко всем базам данных на моем сервере postgresql.

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Непонятно, что именно вы хотите. Возможно, вы пытаетесь найти один оператор SQL, который обрабатывает все ваши привилегии сейчас и навсегда. Привилегии SQL обычно не работают таким образом.

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

  • Отредактировав pg_hba.conf. (Вероятно, не подходит в вашем случае.)
  • С помощью оператора GRANT (или REVOKE) CONNECT ON DATABASE ... . (Начиная с версии 8.2.)

Вы можете изменить права по умолчанию для таблиц, представлений, последовательностей и функций. (Версия 9.0+)

ALTER DEFAULT PRIVILEGES является расширением PostgreSQL для SQL.

1 голос
/ 06 декабря 2011

Не совсем, нет.Предоставление прав доступа к базе данных:

GRANT ALL ON DATABASE databaseName TO joeuser;

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

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