我正在构建一个客户端应用程序,它将使用SQL Server后端来存储持久数据。在过去,我总是使用连接字符串来完成此操作,通常我将其存储在注册表中。然后我查找该注册表值并使用它来启动我的SQLConnection。
但是,我想知道这种方法是否是最佳做法?想到的另一个选项是在客户端计算机上创建可以访问数据存储的系统ODBC连接。这是一个更好的解决方案,因为连接字符串不太可见,但是这也意味着需要在每个安装了客户端的机器上创建ODBC连接。
如上所述,连接数据存储的最佳做法是什么?
答案 0 :(得分:1)
您的客户端应用程序是一个2层架构。最佳做法是使用Windows身份验证(连接字符串中为"Trusted_Connection=yes"
)。
您可以通过创建组来管理客户端访问,将所有用户放在该组中,然后为该组授予对SQL Server数据库所需的权限。
Choosing an Authentication Mode:
当用户通过Windows用户帐户SQL Server连接时 使用Windows主体验证帐户名和密码 操作系统中的令牌。这意味着用户身份是 由Windows确认。 SQL Server不要求输入密码 不执行身份验证。 Windows身份验证是 默认的身份验证模式,比SQL安全得多 服务器验证。 Windows身份验证使用Kerberos安全性 协议,提供关于密码策略的实施 强密码的复杂性验证,提供支持 帐户锁定,并支持密码到期。建立了连接 使用Windows身份验证有时称为可信连接, 因为SQL Server信任Windows提供的凭据。
答案 1 :(得分:0)
我使用LINQ to SQL,对于大型数据库来说可能不是最有效的方法,但是如果你熟悉OOP,它将很容易学习和强大。
抱歉,我以为你在谈论数据库框架,在你的情况下使用像Mitch这样的Windows身份验证。
答案 2 :(得分:0)
通常,如果我正在创建一个将连接到中央SQL数据库的应用程序,我使用Windows / AD身份验证来处理连接字符串的身份验证部分。服务器FQDN或IP是硬编码的。
或者,如果这不是一个选项,那么创建一个应用程序将与之交互而不是直接连接到数据库的某种服务会更好。
请记住,这些只是一般指导原则。如果您正在为公司内部的几个用户讨论专用应用程序,那么这可能都是过度的。基本上它取决于您的目标受众和要求。