MySQL连接和来自不同部门的多个用户?

MySQL connections and multiple Users from different Departments?

提问人:user3833732 提问时间:11/2/2023 最后编辑:philipxyuser3833732 更新时间:11/16/2023 访问量:31

问:

我有2个部门--

  • 具有 100 个用户的 Marketing(他们仅适用于 Marketing 表。
  • 具有 200 个用户的 Factory(他们仅适用于 Factory 表。

我在 MySQL 中建立了 2 个连接。

enter image description here

每个部门的用户将从各自位置使用来自 Java 客户端的相应连接。

  1. 如何让所有营销人员从其 Java 客户端使用相同的连接字符串?

    在任何时候,至少有 100 人在线,每个人都通过自己的笔记本电脑连接。我只问MySQL;在 Java 方面,线程不是问题。

  2. 如何禁止 MarketingDept 用户查看/读取/写入 Factory 表,并禁止 FactoryDept 用户查看/读取/写入 Marketing 表?

  3. 如何允许 MarketingDept 的人员在 MarketingTable 的记录中编辑其详细信息?

    例如,某种行级安全性。我觉得这很麻烦,因为连接时唯一一种身份验证是部门级别,而不是用户级别。

mysql jdbc 数据库设计 行级安全性

评论


答:

-2赞 Rick James 11/16/2023 #1

GRANTs和 和 .以下是一些帮助您入门的提示。ROLEsVIEWs

“角色”是“权限的命名集合”。它允许您为部门的每个成员提供自己的登录名,以及该部门的“角色”。

每个 Dept“角色”(一个用于 MarketingDept,等)将授予或拒绝对这些视图的各种列的读取或写入访问权限。VIEWs

例如,视图将被设计为排除基础的列,从而阻止该连接甚至读取该列的内容。TABLE

视图或列上的 A 可以表示 、 、 、 。这些对应于受赠人所允许的内容。GRANTSELECTINSERTUPDATEDELETE

MariaDB 10.0.5 (2012) 和 MySQL 8.0 (2016) 中添加了“角色”。如有必要,请升级。研究文档。