powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Возврат NULL для колонок SELECT на которые у пользователя нет прав
6 сообщений из 6, страница 1 из 1
Возврат NULL для колонок SELECT на которые у пользователя нет прав
    #39712552
Orrollo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

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

Код: plaintext
select a,b from c

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

Код: plaintext
select * from c

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

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

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

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

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

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

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

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

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

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

наколенный вариарт -- с полями -- функциями -- будет дюже тормозным, думается -- сплошные повторные логическме чтения. даже если по цтиду цепляться.
...
Рейтинг: 0 / 0
Возврат NULL для колонок SELECT на которые у пользователя нет прав
    #39712614
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Orrolloотдавать значения NULL в полях, доступ к которым отсутствует
Это может вводить в заблуждение: действительно нет данных или отсутствие прав
...
Рейтинг: 0 / 0
Возврат NULL для колонок SELECT на которые у пользователя нет прав
    #39713084
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Возврат NULL для колонок SELECT на которые у пользователя нет прав
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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