2009-12-17 77 views
0

我正在开发.NET客户端应用程序通过SQL本机客户端和连接字符串连接到SQL Server Express 2005的Windows桌面客户端/服务器应用程序。客户端然后通过数据库上的连接直接执行SQL(没有存储过程)。适用于Windows桌面客户端/服务器应用程序的SQL Server安全配置选项

如何配置SQL Server(或Windows)安全性,使得只有我签名的应用程序二进制文件可以连接到数据库,而不是其他任何来自客户机的数据库? (即不是SQL Server Management Studio Express,我的二进制文件或其他恶意代码的黑客版本)我需要将密钥嵌入到我的应用程序中吗?如果是这样,那么如何防止这些反汇编攻击?

客户机或服务器机器可以放置在公司域中。使用SQL Server完整版而不是SQL Server Express也是一种选择。我还想在服务器机器上本地运行SSMSE以进行升级和支持工作(服务器将具有物理门锁安全性以防止对其进行访问)。

我的应用程序需要从表中读取数据来计算摘要信息。摘要信息不需要被保护,但是详细的单个行就可以。我认为这个要求不包括任何形式的基于表格的权限结合Windows帐户或SQL Server用户名和密码。

回答

0

位信息的,我会用某种Windows帐户的用户名和密码组合 :-)

除了讽刺以外,你所谈论的只是权限。使用您控制的用户帐户将您的应用程序连接到SQL服务器,并且不会向用户提供帐户凭证。问题解决了。好吧,差不多。

“in”中唯一的另一种方式是使用像Administrator或SA这样的帐户,该帐户具有授予对整个SQL Server的访问权限的服务器角色,因此您必须确保用户无权访问SQL Server通过那条路。这非常简单 - 在SQL Server中限制Builtin \ Administrators组,例如通过只给予Public而不是sysadmin,禁用SA帐户(如果服务器具有混合模式验证),并将控件中的另一个帐户替换为充当系统管理员。小心不要把自己锁在外面:-)。

+0

谢谢。我发现了更多的信息。 Builtin \ Administrators和Builtin \ Users组与可以分别以管理员或用户身份登录到计算机的用户相关。这可能包含很多帐户。例如,本地PC管理员,域管理员和Builtin \ Users案例中的任何人都有域名登录。因此,我将不得不小心这些。 – Shane 2010-01-21 04:11:01

0

你想着眼于在SQL Server中使用应用程序角色。我不确定这些表达式的可用性。

这里有Application Roles

+0

谢谢我还没有看过。我相信这很有帮助,但我注意到它是从2000年开始的。 – Shane 2010-01-21 04:08:01

相关问题