gpt4 book ai didi

c# - 为多个客户组合数据库 - 好主意?

转载 作者:行者123 更新时间:2023-11-30 14:26:14 30 4
gpt4 key购买 nike

我加入了一家小公司,该公司主要销售一种网络应用程序。 Web 应用程序中的数据非常敏感,以至于所有数据都经过字段级加密。应用程序使用 ASP.NET Web API 2(C#) 编写,前端为 html/javascript,后端为 SQL-Server。

目前,他们有大约 50 个客户端,应用程序的架构是每个客户端都有自己的数据库。它们都部署到自己的 IIS 虚拟目录中,然后指向自己的 DB。所有客户端的代码完全相同。

所有者告诉我,这一切都是为了安全而设计的。然而,管理起来绝对是一件痛苦的事情,而且他们只会获得更多的客户。

我建议将它们全部合并到一个数据库中,并在主表上添加一个字段来标识数据属于哪个客户端。从这里我可以过滤/加入该字段。

所有者不喜欢这样,因为它引入了风险:如果有伪劣代码,一个客户可能能够看到另一个客户的数据。这显然不会发生在多个数据库中,因为连接字符串不会跨越到不同的数据库。

是否有任何可能的方法来降低这种风险?我建议覆盖授权类以阻止未经授权的用户访问信息,但这并不能解决整个“错误代码”问题。

有什么我可以做的,还是我一直在维护一大堆数据库?

最佳答案

当前设置也存在风险。如果有人混淆了站点上的数据库连接字符串怎么办?您必须确定哪个风险更大。

如果您决定保留单独的数据库,听起来您需要投资自动化来帮助管理它们。我们使用数据库项目对数据库模式/脚本进行源代码控制,并使用 MSDeploy 自动部署到所有数据库。也许这会减轻您对多个数据库的一些痛苦。

http://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

关于c# - 为多个客户组合数据库 - 好主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35938979/

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