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

问题描述 投票:0回答:1

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

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

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

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

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

java mysql security jdbc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.