【问题标题】:Postgres 13 - default privileges NOT workingPostgres 13 - 默认权限不起作用
【发布时间】:2021-10-18 02:05:28
【问题描述】:

我有一个模式“test_db”和一个角色“test_user”,我想在模式“test_db”中的所有表上从“test_user”中剥离 DELETE 权限 - 如何实现这一点?如果可能的话,我不想诉诸触发器/规则。

到目前为止,我尝试将 DEFAULT PRIVILEGES 设置为该用户架构上的 postgres:我尝试了 granting 仅选择和更新或 revoking 删除 priv,但是,如果我以“test_user”身份登录,我可以从此架构中的表中删除。

这是我使用的语句:

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

【问题讨论】:

  • 更改默认权限将更改特定用户创建的 future 表的权限,而不是现有表。
  • @Bergi 是的,我知道,谢谢,我在数据库初始化阶段这样做,所以还没有表。
  • @zizu_zaza 那么您是如何(以及扮演什么角色)创建表格的? test_user 首先是如何访问它们的?

标签: postgresql database-permissions


【解决方案1】:

该 SQL 语句没有任何用处,因为test_userpostgres 新创建的表没有任何特权,因此撤销这些特权是不必要的,也不会产生任何影响。

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

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

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2021-07-08
    • 2017-11-26
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2014-01-26
    相关资源
    最近更新 更多