是否有关于如何从2层应用程序连接到SQL Server数据库的最佳做法?

问题描述:

我正在开发wpf中的桌面客户端应用程序,我想将我目前在Access中使用的数据库放到我们的SQL Server实例中。我认为使用Windows身份验证不是一个好主意,因为每个用户都应该添加到SQL Server并赋予必要的权限。因此,另一种选择是在SQL Server中为该特定应用程序创建一个用户。我也读过你可以使客户端应用程序通过SQL Server Native Client连接到数据库,但是我需要将它安装在每台PC上。 所以我想我的问题是,这样做的正确方法是什么?是否有关于如何从2层应用程序连接到SQL Server数据库的最佳做法?

+1

如果您可以设置一个包含应用程序的所有用户的Active Directory组,并为该AD组的正确访问权限添加到SQL Server数据库,我会这样做。考虑在应用程序配置中使用具有特定SQL Server用户名和密码的连接字符串不是处理此问题的最安全方法。让用户使用没有用户名/密码但信任连接的连接字符串进行连接会更好,并且仍然可以控制SQL Setup中的所有内容。一旦你安装了.NET 4,你的客户端上就有sql客户端连接 –

+0

这是我似乎并没有得到我的头。我最初是一名Java开发人员(3层应用程序:Web界面 - 服务器应用程序 - 服务器数据库),现在我大部分时间都在VB6和Access“应用程序”上工作。有没有简单的方法来使.net客户端应用程序与SQL Server交互?也许我试图过于简单化来制作2层应用程序? –

如果您处于一个安全的局域网环境中,Windows身份验证是绝对是要走的路。通过这种方式,您没有为每个用户提供单独的一组登录凭据,而且您也不需要在应用程序本身上存储/输入登录凭证。

如果您处于互联网的情况,您应该不允许直接连接到SQL服务器。

+0

但是,每个用户都需要被授予访问权限吗? –

+0

对。但是你需要更多地使用SQL Server用户。这就像让SQL Server做Windows的一部分工作。 –