面向Internet的应用服务器的典型SQL Server身份验证方法

时间:2009-01-23 18:14:17

标签: sql-server authentication

我使用的是面向Internet的基于ASP.NET的产品,该产品使用SQL Server 2005.大多数客户使用传统方法部署我们的软件,其中应用服务器(IIS)位于DMZ中,而SQL Server则位于辅助服务器之后防火墙。

我们想选择一种SQL Server身份验证。从安全角度和/或客户角度来看,什么是集成或SQL Server身份验证首选?

我已阅读相关帖子,如果重要,我们的应用程序直接使用SQL,以及存储过程。我们的应用程序实现了一个安全模型,因此我们不需要能够区分SQL Server中的用户。

谢谢, 斯科特

5 个答案:

答案 0 :(得分:3)

要么会这样做。我被告知集成身份验证更安全,因为它不会通过网络传递sql登录信息。身份验证的类型不如访问数据库的帐户的权限那么重要。

如果您要将此内容提供给客户端进行安装,我可能会使用sql身份验证,因为这不需要其他系统来验证用户(如活动目录)。

Mithcel提出了让客户配置它的好处。我已经看到过明确禁止SQL身份验证的地方,以及使用Active Directory帐户的其他地方(比如我现在工作的地方)是不可能的。

答案 1 :(得分:1)

在向用户提供产品的环境中工作时,我会根据他们配置连接的方式向他们说明。集成安全性和授予ASP.NET工作进程通常称为更安全的路由,但是,某些环境对不允许它的委派有限制。

通常我会看到人们使用具有强密码的SQL Server帐户。

答案 2 :(得分:1)

我主要使用非集成的SQL服务器帐户,难以猜测的帐户名称和非常强的密码 - 然后只授予该帐户的最低权限。

答案 3 :(得分:1)

Windows Auth比SQL Auth更安全,但是如果Web服务器在DMZ中,那么它可能不是Windows域的一部分,并且将需要SQL Auth。

作为已安装供应商软件包的人,我总是建议让客户决定如何进行身份验证。这应该包括将用户名和密码设置为他们想要的东西,这样如果有需要保留的标准则不是问题。

答案 4 :(得分:0)

您可能希望在sql server后端中创建一个用户/登录,该后端具有一组有限权限,例如“WebUser”,用于web配置中的connectionstring。确保您不向该用户授予DDL权限(除非您的应用需要)。

但是,如果您100%确定所有用户都是Windows用户(Windows域的一部分),则将SQL Server身份验证设置为“Windows身份验证”是最安全的方法,因为该身份验证模式将继承域及其用户的策略(priveledges,角色等)。