为什么SQL Server的.NET数据提供程序不接受连接字符串中的Windows用户名和密码?

时间:2013-07-09 01:47:21

标签: .net sql-server authentication connection-string windows-authentication

根据MSDN为SQL Server构建连接字符串时:

  

如果指定了用户ID和密码,则设置了Integrated Security   如果为true,则将忽略用户ID和密码并进行集成   将使用安全性。

现在问题是为什么数据提供者不允许用户在连接字符串中硬编码特定的Windows用户名和密码?

这比硬编码SQL用户名和密码更糟糕吗?

将SQL Server配置为仅接受Windows登录(基本上禁用SQL身份验证)并在客户端指定Windows用户名和密码,而不是以混合模式运行SQL Server(启用Windows和SQL身份验证)和为每个数据库服务器/实例创建一个SQL用户,并在连接字符串中指定SQL用户名和密码?

至少在使用Windows身份验证时,您只需管理一个域用户,但在SQL Server身份验证的情况下,您必须为每个SQL服务器/实例管理一个用户。

1 个答案:

答案 0 :(得分:0)

集成安全性的重点在于您不会对用户名和密码进行硬编码。这可以防止可能访问该计算机的攻击者读取配置文件并学习域用户名和密码。

这是一种减轻机器危害的安全机制。