Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Возврат NULL для колонок SELECT на которые у пользователя нет прав / 6 сообщений из 6, страница 1 из 1
03.10.2018, 16:46
    #39712552
Orrollo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат NULL для колонок SELECT на которые у пользователя нет прав
Здравствуйте,

Ситуация следующая: есть набор таблиц, для которых ролями определена видимость полей в запросах select. При запросе вида

Код: plaintext
select a,b from c

где a,b - столцы, право на просмотр которых дано текущей роли, все прекрасно - данные отображаются. При запросе же вида:

Код: plaintext
select * from c

получаем сообщение 42501 об отказе в доступе к таблице (что логично).

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

Есть ли какая-то возможность (настройка/что-то еще) в ответ на запрос второго вида не выдавать ошибку, а отдавать значения NULL в полях, доступ к которым отсутствует?

Посоветуйте, пожалуйста в какую сторону смотреть. Версия движка 10.5, ОС Windows. Документацию по правам на сайте читал, ничего о таком варианте не нашел.

Спасибо за внимание.
...
Рейтинг: 0 / 0
03.10.2018, 17:16
    #39712568
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат NULL для колонок SELECT на которые у пользователя нет прав
эксэпшн?
...
Рейтинг: 0 / 0
03.10.2018, 18:01
    #39712600
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат NULL для колонок SELECT на которые у пользователя нет прав
Orrollo,

Невозможно сделать то что вы хотите.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
03.10.2018, 18:09
    #39712604
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат NULL для колонок SELECT на которые у пользователя нет прав
Maxim BogukOrrollo,

Невозможно сделать то что вы хотите.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

сложносочиненную вьюху могабыть и удастся.

наколенный вариарт -- с полями -- функциями -- будет дюже тормозным, думается -- сплошные повторные логическме чтения. даже если по цтиду цепляться.
...
Рейтинг: 0 / 0
03.10.2018, 18:27
    #39712614
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат NULL для колонок SELECT на которые у пользователя нет прав
Orrolloотдавать значения NULL в полях, доступ к которым отсутствует
Это может вводить в заблуждение: действительно нет данных или отсутствие прав
...
Рейтинг: 0 / 0
04.10.2018, 15:49
    #39713084
Gold_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат NULL для колонок SELECT на которые у пользователя нет прав
Orrollo ,

О, Месье знает толк в извращениях.

Смущает однозначный ответ Максима.

но такие варианты:

Код: sql
1.
2.
3.
4.
5.
SELECT
 CASE WHEN has_column_privilege(table_name,colum,'SELECT') 
THEN column END    as column
 FROM
LIMIT 10



или формировать запрос динамически в функции или клиенте, (ИМХО так будет лучше)
(нет проблем пройтись по полям и позапускать функцию выше и сформировать запрос)

или если количество групп ограниченно, понаделать для них вьюшки и динамически находить имя
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Возврат NULL для колонок SELECT на которые у пользователя нет прав / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]