2 вопроса о PostgreSQL

Привет всем!
Я только не давно начал осваивать PostgreSQL и у меня возникли несколько вопросов:

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

2 С помощью системы ролей я дал возможность юзерам работать с одной таблицей. Но вот сделать так, чтобы юзер не мог создать новую таблицу никак не получается. Любой юзер коннектиться и создает новую таблицу. Как закрыть им такую возможность?

Буду очень благодарен!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

1.

1. Никак.
Согласно стандарту SQL права даются на таблицы, а не на записи. Поэтому если есть необходимость в таком разграничении доступа, то нужно делать отдельную таблицу для каждой группы пользователей и раздавать права на таблицы. Далее можно, например, просто написать функцию, делающую выборку записей согласно пользователю и VIEW для пользователей которые должны видеть всё. (это только один из вожможных путей решения - как будет оптимальней, не зная ваших данных и вообще специфики сказать сложно).

2. Отобрать права на создание таблиц в данной базе и схеме.
Помоему достаточно отобрать CREATE и TEMPORARY. Попробуйте.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023