Postgres 13 - 默认权限不起作用

Postgres 13 - default privileges NOT working

我有一个模式“test_db”和一个角色“test_user”,我想从“test_user”中删除模式中所有表的删除权限“ test_db" - 如何做到这一点?如果可能的话,我不想诉诸触发器/规则。

到目前为止我尝试的是将 DEFAULT PRIVILEGES 设置为该用户模式上的 postgres:我尝试了 granting only select 和 update or revoking 删除 priv,但是,如果我以“test_user”身份登录,我仍然可以从此模式中的表中删除。

这是我使用的语句:

alter default privileges for role postgres in schema test_db
   revoke delete, truncate on tables from test_user;

那个 SQL 语句不会做任何有用的事情,因为 test_userpostgres 新创建的表没有任何权限,所以撤销这些权限是不必要的并且不会'没有任何影响。

要撤销 现有 表的权限,请使用

REVOKE DELETE, TRUNCATE ON ALL TABLES IN SCHEMA test_db FROM test_user;