День добрый
столкнулся с такой проблемой
Необходимо добавить в БД пользователя
который мог бы просматривать только определенную БД
без возможности редактирования и удаления объектов.
т. е. только просматривать и делать выборку из таблиц.
как начал делать
залогинился под учеткой владельца БД и в psql
Создал групповую роль для просмотра
CREATE ROLE write_only
Создаю нового пользователя
CREATE ROLE ib123 LOGIN UNENCRYPTED PASSWORD '123';
Добавляем пользователя ib123 в новую группу
GRANT write_only TO ib123;
и далее этой группе выдал права на все таблицы для схемы
GRANT SELECT ON ALL TABLES IN SCHEMA ibank2 TO GROUP write_only;
GRANT EXECUTE ON ALL functions IN SCHEMA ibank2 TO GROUP write_only;
все выполнилось успешно. Логинюсь под новой учеткой ib123
и пробую сделать выборку из таблиц выдает "permission denied for schema ibank2"
Доступ запрещен к схеме ibank2
Скажите пожалуйста что сделано не так ?
и как можно реализовать вход с ограниченными правами (только просмотр и выборка) к определенной БД
Во-первых, write - это
Во-первых, write - это "писать", а не "читать".
Во-вторых, обратитесь к мануалу и прочтите какие права доступа есть и выберите нужные:
http://postgresql.ru.net/manual/sql-grant.html
На мой взгляд вам не хватает прав на коннект к базе и USAGE.
Кстати возможно вам лучше пойти от противного. Т.е. сперва дать права ALL PRIVILEGES, а потом отозвать через REVOKE права на UPDATE, INSERT и DELETE.
сделал по другому.
День добрый
Ну да называл чуть коряво.
Вы были правы не хватало USAGE
сделал так без всяких групп
все заработало как надо
Спасибо за помощь !