Sql Server数据库应用级安全
本文关键字:安全 应用 数据库 Server Sql | 更新日期: 2023-09-27 18:12:45
我正在使用c#应用程序,并使用sql server 2008使用windows身份验证连接到数据库。我为数据库创建了几个用户,但我无法理解如何在我的应用程序级别上使用它们。我的目标是在任何pc上安装这个应用程序,并使数据库无法被用户访问,如果他试图安装sql management studio。
谁能解释一下或给我一些好的参考,让我明白我想做什么
如果你想确保用户不能在没有你的应用程序的情况下访问数据库,你有几个选择:
-
实现"虚拟用户"
这将意味着你实现你自己的用户管理,而不是为你的应用程序用户创建真正的数据库用户,而只是在你自己的结构中创建"虚拟用户"。你的应用程序将使用一个普通的应用程序用户访问数据库,这是未知的你的用户…由于应用程序用户不是真正的数据库用户,所以他们不能直接使用用户/pw访问数据库。 -
实现"特殊密码方案"
这意味着你要创造真正的用户……但只有你的应用可以创建一个应用用户…当用户创建或更改其密码时,您不需要将用户的数据库密码设置为该密码,而是使用一些计算(例如散列)来创建不同的密码并在DB级别上设置。你的应用程序知道计算,所以当用户登录你的应用程序做计算,并使用结果登录到数据库…这样,真正的DB用户就不能直接登录到DB,因为他们知道的密码(只有在与你的应用一起使用时才有效)不是DB知道的密码…
请注意,以上这些都不是100%安全的,因为你的。net应用程序总是可以被反编译/逆向工程等-尽管以上这些肯定足以阻止"普通用户"直接访问DB…