database - 数据库中的登录名和密码存储
问题描述
我正在创建一个简单的聊天,我想添加用户登录功能。
我有一个问题:我应该将登录名和密码(哈希+盐)存储在与消息和其他聊天内容相同的数据库中,但存储在不同的表中,还是有更好的方法为其创建另一个数据库?
请告诉我如何以及为什么。非常感谢
解决方案
我应该将登录名和密码(哈希+盐)存储在与消息和其他聊天内容相同的数据库中,但存储在不同的表中吗?
是的,如果它们在同一个数据库中,它们必须在另一个表中,例如“用户”。例如,您将有一个名为 users 的表和一个名为 message 的表。密码必须像您拥有的任何其他敏感数据一样加密。例如:消息是私密的吗?可能。所以他们最好加密。您不希望具有数据库访问权限的人阅读所有聊天内容。
或者有没有更好的方法来为它创建另一个数据库?
如果您的系统架构是微服务,那么您的登录/用户数据很有可能应该在另一个数据库中。这将意味着数据重复,但更易于维护。但是,这实际上取决于您的系统设计。对于非常小的应用程序,我不会使用微服务,除非您希望应用程序在某个时候增长,新功能..等等。
推荐阅读
- amazon-web-services - 属性 Roles 的值必须是 List of String || 类型 AWS SAM
- node.js - 在 Github 操作中测试上传到 Azure 的图像失败
- python - Pivot table with Multi Index Dataframe
- nestjs - Nest 无法解析 xService 的依赖关系
- android - 如何使 BottomSheet 在任何地方停止/拖动?
- hadoop - 我们如何使用 Ambari 安装 Apache BigTop?
- javascript - 事件日历 - 整个保留期间的自动条目
- video - 使用 FFmpeg v360 过滤器对 180 个 VR 素材进行变形
- watchman - 如何根据多个目录的目录更改监视和运行命令?
- ruby-on-rails - 是否可以将一些 Sidekiq 工作人员排入外部 redis 队列?