我想使用 React 和 Postgres 创建我的第一个端到端 Web 应用程序。我之前在 Intranet 中使用过 Postgres,并使用 Postgres 角色系统进行用户身份验证。
我计划的网络应用程序将是一个团队规划系统。它将包含以下用户角色:
我当前的用户身份验证和角色管理计划是将上述角色设置为 Postgres 组角色,并在每个组角色中定位相应用户的登录角色。因此,用户身份验证将完全由 Postgres 的内置角色系统管理。
然后通过
应用不同的数据访问这是一个好方法吗?
虽然可行,但可能不是最简单的方法。
当您开始使用连接池时,就会出现问题。每次向数据库发出请求时,您都必须先切换用户。
此外,有一天会使用错误的用户(忘记切换或其他),但几乎不可能调试甚至找出:您将记录
Bob
更新的表X,而不是R_Readonly_worker
更新它。
这样做的主要原因是数据模型和数据库会比前端停留的时间长很多。切换前端会经常发生,使用这种方案,即使 psql 是一个有效且安全的前端。或者使用 jdbc 的报告引擎,使用 rls 的访问控制将使其安全。 这种方法万岁,因为我很少听到这种方法。永远不要将访问控制留给应用程序程序员!