如何保护C#应用程序访问的sql服务器

Ian*_*Ian 3 c# sql-server security

简单而人为的例子:

C#桌面应用程序与SQL Server数据库对话.订单表中存在所有订单.

应用程序视图,创建和修改订单.在此示例中,用户只能修改自己的订单.

关注:

如果使用专用sql凭据,则存储连接字符串.即使使用了用户凭据,也可以通过直接通过Excel或Access连接来绕过应用程序安全性.

解决方案:

仅通过Web服务/中间件提供对SQL的访问.好,但在这种情况下不一定可行.

在应用程序的某处加密连接字符串.通过默默无闻的安全性不是很大.

通过授予对特定存储过程,视图等的访问权限来保护数据库,并且无法访问实际表.SP和视图考虑了用户的权限/凭证.太可怕了.好的简单示例(选择用户,在介绍不同组中的用户,经理关系等时变得复杂)

备择方案:

你会怎么做?

谢谢

Dav*_*ras 5

即使使用了用户凭据,也可以通过直接通过Excel或Access连接来绕过应用程序安全性

你什么意思?您不应该允许用户直接连接到SQL Server或使用Excel或Access.他们不应该知道sa或其他密码.

在此之后,您肯定可以加密应用程序的某些部分,配置以便没有人可以看到其内容.

我真的有这样的逻辑:用户只能在应用程序级别修改他/她自己的订单.也可以在我猜的存储过程中完成,但它取决于更多细节应该知道这个建议最佳或最合适的方法.