IMO, правильный способ сделать это - использовать представления и защищать вид для людей, которые могут получить к нему доступ.
См. Здесь Ода Код для лучшего примера.
скажем, у вас есть таблица (the_table
) с тремя столбцами (a, b и c), вы можете создать представление, содержащее только столбцы, которые вам нужны
create view show_colc_view
as
select c from the_table
Затем вы можете защитить людей, имеющих привилегию CRUD, как для таблицы, так и для представления.
чтобы заинтересованные люди могли сделать это:
select * from show_colc_view
но не
select * from the_table