gpt4 book ai didi

mysql - 将 MySQL 凭据存储在 MySQL 数据库中

转载 作者:搜寻专家 更新时间:2023-10-30 20:16:39 26 4
gpt4 key购买 nike

这是一个与“Storing MS SQL Server credentials in a MySQL Database”类似的问题

因此,理论上,假设我有 1 个 MySQL 服务器。我有一个“主”数据库,然后是 X 多个其他通用数据库。我正在寻找的是一种使用应用程序(为了论证,假设是一个在 php 上运行的网络应用程序)来首先访问主数据库的方法。这个数据库然后需要告诉应用程序要连接到哪个数据库 - 在这个过程中,给它所有的凭据和用户名等。

最好的解决方法是什么?

目前的三个想法

  • 将所有其他数据库的凭据存储在 master 数据库中。这些凭据当然会以某种方式加密,可能是 AES。该应用程序将获取加密凭据、解密、连接。
  • 将凭据存储在别处 - 也许是一个完全独立的服务器。当访问主数据库时,它会返回某种 token ,可用于访问凭证存储。同样,通过 AES 加密。
  • 使用某种我不知道的系统来做到这一点。
  • 根本不这样做,而是想出一个完全不同的方法。

举个小例子。 “master”将包含一个客户列表。每个客户端都将包含自己独立的数据库,具有自己的权限等。

最佳答案

我自己没有理由做这种事情,但你的前两个想法对我来说听起来不错,而且(只要你包括服务器地址)甚至不一定是单独的想法(可以在服务器上有一些客户端与 master ,以及其他地方的一些)客户端逻辑不需要关心。我能看到的唯一问题是保持“主”模式中的数据与服务器的安全数据同步。此外,我不会费心在主模式中保留数据库权限,因为我认为所有客户端都具有相同的权限,只是特定于他们的模式。如果您具有限制特定客户可以执行的操作的“权限”(设置)(可能受限于付费的契约(Contract)/功能),我认为将这些保留在该客户的架构中但他们的数据库用户无法更改的位置会容易得多数据。

编辑:在这种情况下有单独的数据库用户是一个不错的主意;它会让您更少地担心来自一个用户的客户端的查询无意中(或者可能是恶意的)修改另一个用户的(客户端帐户应该只有权访问他们自己的模式。)保留“主人”的代码可能是个好主意协调(和连接)在某种程度上与客户端代码库隔离,以防止对该数据库的访问意外泄漏到客户端代码中;即使已加密,您可能也不希望他们对您的客户端连接信息拥有超出必要的访问权限。

关于mysql - 将 MySQL 凭据存储在 MySQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35711623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com