2011-10-31 66 views
0

我正在使用C#应用程序和连接到数据库使用SQL Server 2008使用Windows身份验证。我为数据库创建了几个用户,但我无法理解如何在应用程序级别使用它们。我的目标是在任何电脑上安装此应用程序,并在用户尝试安装sql管理工作室时使用户无法访问数据库。SQL Server数据库安全性在应用程序级别?

有人请解释或给我任何好的参考,以了解我想做什么?

回答

1

如果你想确保没有你的应用程序中的用户不能访问数据库,你有几种选择:

  • 实施“虚拟用户”
    这意味着你实现自己的用户管理和不要为您的应用程序用户创建真正的数据库用户,而只能在您自己的结构中创建“虚拟用户”......您的应用程序会使用一般应用程序用户进行数据库访问,这对用户来说是未知的......因为应用程序用户不是“重新安装数据库用户,他们无法直接用其用户/密码访问数据库。

  • 实行“特殊密码方案”
    这意味着你创建真正的用户......但是只有你的应用程序可以创建一个应用程序的用户...创建或更改其密码的用户,当你不设置用户的数据库密码,但使用一些计算(例如哈希)来创建不同的密码,并在数据库级别设置...您的应用程序知道计算,所以当用户登录您的应用程序做计算并使用导致登录到数据库......这样,真正的DB用户无法直接登录数据库,因为他们知道的密码(只适用于与您的应用程序一起使用时)不是DB所知道的密码......

请注意,以上都不是100%安全的,因为您的.NET应用程序始终可以被反编译/反向工程等。 - 尽管上述方法足以阻止“普通用户”直接访问数据库...

相关问题