撤销 postgresql 中的特定列

Revoke particular columns in postgresql

我试过使用文档 here 但似乎没有帮助。如果可以请举个例子。

revoke select (column1, column2) on table from specific_user

没有成功。

Access privileges
 Schema | Name  | Type  |     Access privileges     | Column privileges | Policies 
--------+-------+-------+---------------------------+-------------------+----------
 public | users | table | himanshu=arwdDxt/himanshu+|                   | 
        |       |       | reports_user=r/himanshu   |                   | 
(1 row)

问题是SQL中的权限是累加的,列权限和table权限是不一样的

撤销您之前未授予的权限无效,并且在 table 上授予 SELECT 不同于在所有列上授予 SELECT

您应该撤销对 table 的 SELECT 权限,并在除您要拒绝访问的列之外的所有列上授予 SELECT

REVOKE SELECT ON "table" FROM specific_user;
GRANT SELECT (<all columns except "column1" and "column2">)
   ON "table" TO specific_user;

\z "table"检查结果。