Antes da versão 8.4 só era possível fazer o controle de acesso de forma mais granular a uma tabela criando uma view especificando as colunas permitidas.
Agora pode dar ou tirar privilégios da seguinte forma:
GRANT SELECT (coluna1,coluna2,…) ON tabela TO role;
Para o exemplo prático a criação de role:
CREATE ROLE limitado LOGIN NOSUPERUSER;
Só terá acesso às colunas campoX e campoY, sendo de somente leitura da tabela tb_exemplo:
GRANT SELECT (campoX,campoY) ON tb_exemplo TO limitado;
De forma análoga será revogado (retirado) o acesso à coluna “campoX”:
REVOKE SELECT (campoX) ON tb_exemplo FROM limitado;