【问题标题】:PostgreSQL server user-admin roles to approve changes to db from a lower-role adminPostgreSQL 服务器用户管理员角色,用于批准从较低角色管理员对 db 的更改
【发布时间】:2020-12-04 17:54:25
【问题描述】:

PostgreSQL 的服务器管理角色需要配置为高级/角色管理员将批准/允许低级/角色管理员对数据库所做的所有更改。

我知道有管理员的角色,但问题是如何创建批准机制?

另外,使用 Firebird 数据库可以做得更好吗?

【问题讨论】:

  • 您是在谈论架构更改 (DDL) 还是数据更改 (DML)?
  • @jjanes 他们俩,那是任何变化。
  • 请不要在一个问题中问两个问题。

标签: postgresql firebird roles server-administration


【解决方案1】:

PostgreSQL 中没有类似的工具。

您当然可以编写触发器,将尝试的更改记录在第二个“批准表”中,以及应用该批准表中的更改的函数。

【讨论】:

  • 谢谢。但是,如果较低级别的管理员创建了一个列或更改了一个值,那么该更改将立即应用,因此没有什么需要批准的,除了我们可以记录 cahnge 是一个单独的表并在需要时将其更改回来。所以,我真的不明白“应用来自该批准表的更改的功能”。 ...有没有办法“冻结”较低级别管理员所做的更改,直到获得批准?
  • @CodeGust 触发器可以记录更改尝试,但阻止更改实际发生。
  • 好的,所以如果我为特定角色的用户创建任何操作的触发器,该触发器可以阻止操作并将其记录到表中 - 对吗?
  • 是的 - 它插入到表中,然后返回 NULL 以中止原始操作。
猜你喜欢
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 2016-01-24
  • 2011-09-26
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多