首页 > 解决方案 > Postgres 中的用户权限

问题描述

我需要在我的应用程序中实现访问控制。我需要控制谁可以编辑哪一行的哪些列。

规则的示例可能是:

我没有要求数据库向我的应用程序提供评估应用程序代码更改可能性所需的所有信息,而是目前正在考虑基于触发器的插入、更新和删除方法。在这种情况下,当不允许操作时会失败的触发器将被挂接到受控表。

假设我能够评估 Postgres DB 中的所有权限,我看到了一些积极的方面:

我的问题是:

标签: phppostgresqlpermissionsaccess-control

解决方案


扩展后,您的数据库可能会充满难以编辑或更改某些内容的触发器。例如,如果您添加额外的列,您应该编辑与表相关的所有过程。

如果我有您的问题,您正在尝试控制 Web 应用程序用户。

我认为更好的方法是在 PHP 端实施限制。例如创建角色,其中包含可能编辑列的数组。如果这是“管理员”,他/她的列表将包含所有列。然后根据角色配置动态创建表单,让用户看到,他/她可以编辑什么。


推荐阅读