LINUX.ORG.RU
ФорумAdmin

Неработает revoke в POSTGRESQL


0

0

Создаю два пользователя и две базы:

postgres=# create user user_01 with password '1';
CREATE USER
postgres=# create user user_02 with password '2';
CREATE USER
postgres=# create database db_01 with owner user_01;
CREATE DATABASE
postgres=# create database db_02 with owner user_02;
CREATE DATABASE
postgres=# grant all on database db_01 to user_01;
GRANT
postgres=# grant all on database db_02 to user_02;
GRANT
postgres=# revoke all on database db_01 from PUBLIC;
REVOKE
postgres=# revoke all on database db_02 from PUBLIC;
REVOKE

Подключаюсь пользователем user_01 к не своей базе.
$psql -U user_01 db_02;

И как результат все удачно. Я под user_01 могу делать что хочу в базе db_02, притом что user_01 не являеться ownerom db_02

Версия pgsql - 8.1.4
Кто нить сталкивался с подобным? Как лечить? Google ничего путнего не даёт.

anonymous

Ответ на: комментарий от anonymous

Ну если пользователь может создавать и удалять базы то не все ли равно к какой он приконнектился? Может этот пользователь еще и других пользователей может создавать?
Я так и не понял в чем проблема?

gibbon
()

Я кажется знаю что вам надо! Надо поправить файл pg_hba.conf
Туда добавить пару строк
host db_01 user_01 192.168.1.0/24 password
host db_02 user_02 192.168.1.0/24 password

ну и почитать документацию.

gibbon
()
Ответ на: комментарий от gibbon

Огромное спасибо за это решение. Я так и делаю, но разве это провильно? Что при таком раскладе нужно перегружать postgre что бы он перечитал конфиг.

По поводу пользователей: Эти два пользователя не являються супер пользователями, они не могут создавать новые базы и пользователей.

Дело в том что в документации по postgre написано, что по дефолту только пользователь, который являеться владельцем базы может с ней работать.

А на практике получаеться что все не так.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.