我已尝试使用文档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)
答案 0 :(得分:1)
问题是SQL中的权限是附加的,列权限和表权限是不同的。
撤消之前未授予的权限无效,而表格上的grantine SELECT
与授予所有列的SELECT
不同。
您应该撤消表上的SELECT
权限,并在除了您要拒绝访问的列之外的所有列上授予SELECT
:
REVOKE SELECT ON "table" FROM specific_user;
GRANT SELECT (<all columns except "column1" and "column2">)
ON "table" TO specific_user;
使用\z "table"
检查结果。