LINUX.ORG.RU

postgresql создание пользователя с правами на чтение

 


0

1

Здравствуйте, подскажите пожалуйста, есть postgresql 13 с БД mybase. В БД есть 2 таблицы table1 и table2. Необходимо создать пользователя с правами только на чтение данных таблиц и все. Делаю так:

CREATE ROLE user1 WITH LOGIN ENCRYPTED PASSWORD '123456';
GRANT CONNECT ON DATABASE mybase TO user1;
GRANT USAGE ON SCHEMA public TO user1;
GRANT SELECT ON all tables IN schema public TO user1;

В итоге да, из данных таблиц можно только читать, но при этом у пользователя есть возможность создать новую таблицу и далее добавлять в нее данные. Почему так произошло? Или это связано с тем, что я использую схему public? Что в этом случае делать?

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

Теперь можно

Судя по всему - с 15й версии они собираются это сделать поведением по умолчанию.

Это будет важное изменение: раньше не суперюзер по умолчанию мог создавать объекты в схеме public в базе, которой не владел. На то, вроде бы, она и public. Одних устраивало, другие считали это дырой в безопасности. В 15-й всё будет строго.

https://habr.com/ru/company/postgrespro/blog/573530/

Чисто случайно недавно там читал и сохранил ссылку в избранное.

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