我想开发一个C#网络应用程序,允许客户上网查看我所拥有的零售店的当前库存水平。该商店使用带有SQL Server后端的POS系统。
该应用程序将在防火墙外部托管在单独的服务器上。我想知道从安全性和/或性能角度来看,创建一个本地数据库脚本是否更加谨慎,这个脚本将必需的数据复制到一个单独的数据库(可能在托管该应用程序的同一台服务器上)每10个更新一次20分钟左右,而不是让网络应用程序直接与实时POS数据库对话。
我无法让应用程序以任何方式影响POS系统的性能。应用程序连接是只读的,并且仅限于唯一的库存表,但即使使用池,我也不确定是否有几百个网络用户ping实时数据库会产生任何延迟或不良影响。
答案 0 :(得分:2)
如果您的Web应用程序是严格只读的,那么您可以通过使Web应用程序仅对您的POS数据库具有datareader
权限来实现完美的安全性 - 不需要复制或其他复杂的步骤。
至于性能 - 即使是基本的(Core i3,5200rpm HDD,2GB RAM)服务器也可以为每个适度大小的数据库处理几百个简单的SQL查询。考虑到现代数据库服务器如何在RAM中缓存大量数据,这意味着读取查询非常便宜。