postgresql - 使用 Postgres 角色系统进行 Web 应用身份验证和角色管理是否合法?
问题描述
我的情况
我想使用React和Postgres创建我的第一个端到端 Web 应用程序。我之前在 Intranet 的工作中确实使用过 Postgres,并使用 Postgres 角色系统进行用户身份验证。
角色
我计划的网络应用程序将是一个团队计划系统。它将由以下用户角色组成:
- 网络管理员(我,超级用户)
- 团队管理员(可以在他/她的团队中插入/删除用户,为团队设置全局应用的功能设置等)
- 团队用户(可以调整存储在
数据库中的自定义个人设置,例如颜色、自己的配置文件) - 访客(只能查看团队及其成员)
我的方法
我目前对用户身份验证和角色管理的计划是将上述角色作为 Postgres 组角色,并且在每个组角色中,找到相应用户的登录角色。因此,用户身份验证将完全由 Postgres 的内置角色系统管理。
然后通过应用不同的数据访问
这是一个好方法吗?
解决方案
虽然可行,但它可能不是最简单的方法。
当您开始使用连接池时,就会出现问题。每次向数据库发出请求时,都必须先切换用户。
此外,有一天会使用错误的用户(忘记切换,否则),但几乎不可能调试甚至发现:您将记录Bob
更新的表 X,而不是R_Readonly_worker
更新它。
推荐阅读
- reactjs - webpack 摇树并将块拆分在一起
- javascript - 使用 php 基于访问者 IP 地址的国家/地区标志下拉列表
- java - 如何解析具有以这种方式编写的 unicode 字符的字符串:\u003C、\u0022
- android - ViewPager2 notifyItemChanged 的 FragmentStateAdapter 未按预期工作
- .htaccess - 如何使用 htaccess 隐藏特定的站点推荐链接?
- javascript - 循环通过firebase数据
- c - lseek() 的 SEEK_HOLE 是否按预期运行?
- google-bigquery - 使用 Google Composer 运行 Bigquery 查询
- c++ - 模板化构造函数专业化
- function - 有没有办法在 perl 中将函数声明为变量?