java - 为用户和用户组提供安全访问的 Web 应用程序

标签 java mysql security jdbc

所以我正在开发一个具有 Multi-Tenancy 数据库(MySQL、Java JDBC)的项目。每个租户可以被认为是一个“组”,每个“组”有多个“用户”。我主要的困惑是如何最好地保护这一点,因此组的成员只能访问该组的数据,即使他们都使用单独的凭据登录。

如果我只是进行基于组的登录,那就很简单:每个组一个架构,一个数据库用户可以访问每个架构。这可以使访问受到完全限制,因为没有该组的密码,任何人都无法访问该架构。

对于用户,我将其称为“应用程序用户”,事情就会变得复杂。每个应用程序用户都与一个组关联,当该应用程序用户登录时,他们需要访问与其关联的组。本质上,他们以应用程序用户身份登录,并被授予数据库用户的凭据。

现在,这个想法似乎笨拙且不安全。如果 JDBC 应用程序层有一种方法可以向任何数据库级用户帐户授予访问权限,那么这种安全性就变得毫无意义,因为它很容易被绕过。

我想我正在寻找有关如何最好地保护这种环境的指导。谢谢。

最佳答案

这是一个比为不同租户分配不同数据库用户更好的想法,只需使用一个表来存储组的所有数据。一张表用于所有应用程序用户,第三张关系表将组或租户 ID 与其各自组成员的用户 ID 链接起来。 每当任何应用程序用户请求组资源或数据时,请在关系表中检查该用户是否有权访问组数据。祝你好运

关于java - 为用户和用户组提供安全访问的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38943423/

相关文章:

python - 有没有办法在设置大小参数时使 buffer() 可写而不进行复制?

java - 在 JMeter 中下载并保存文件

java - 如何设置JSlider在窗口中的位置?

php - 我需要帮助在 PHP 函数中使用类

mysql - 如何将 MVC 成员(member)提供程序与 MySQL 结合使用?

mysql - 通过大量 SQL 调用来加速缓慢的函数

c# - 密码框和 MVVM

Java Web Start 应用程序需要中等安全性

java - 需要帮助创建 "help"命令,用户可以随时键入该命令并查看关键字或在遇到困难时获取帮助

java - env.getProperty 不工作 Spring PropertyPlaceholderConfigurer