对于 SQL Server 安全性来说什么更安全

对于 SQL Server 安全性来说什么更安全

在 SQL Server 2005 / 2008 上设置安全性时,哪个选项更安全?

  • 仅限 Windows 身份验证模式
  • 混合身份验证

如果服务器将被许多桌面客户端(胖客户端)访问或只有少数 Web 服务器访问,这是否重要?

编辑

为什么它更安全?使用 Windows 身份验证确实意味着我们可以避免将连接字符串放在配置文件中,这是一个优点。

Windows 身份验证还允许我们根据 NT 凭据控制谁可以获得访问权限,我认为当您的客户端直接连接到服务器时这是理想的选择。

然而,我一直想知道的一件事是,当所有客户端都通过代理(例如 Web 服务)时,NT 身份验证有多大用处。

答案1

Windows 身份验证被认为更安全。原因如下:

  • 您可以使用 Kerberos 身份验证。Kerberos 协议具有时间戳,可防止重放攻击。它还允许客户端使用受信任的第三方(在 Active Directory 的实现中,这是 DC)验证服务器的身份。
  • 它允许单一安全源:Active Directory。因此,一旦您关闭 Active Directory 中的帐户,该帐户在所有地方都将被禁用。
  • 在 SQL Server 2005 之前的 SQL Server 版本中,登录数据包不会自动加密。由于我们讨论的是高位和低位翻转和 XOR 运算,因此密码在网络上传递的方式很容易被解密。
  • 事实上,您不必将密码放入连接字符串中,但还有其他方法可以解决这个问题。例如,加密用户名/密码并将其存储在注册表中,然后在运行时构建连接字符串。
  • 如果启用了此类审核设置(应该启用),则登录 SQL Server 的信息将与其他 Windows 登录信息一起被记录在安全事件日志中。这意味着,如果您的服务器有日志解析/聚合软件,则您不必解析应用程序事件日志或 SQL Server 日志文件。

就您从 Web 服务获得单个帐户而言,您仍然拥有我上面列出的所有相同优势。

答案2

Windows 身份验证更安全,主要是因为用户名和密码不会在连接字符串中传递。Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

与数据源 = myServerAddress;初始目录 = myDataBase;用户 ID = myUsername;密码 = myPassword 相反;

答案3

更安全的是 Windows 身份验证模式,仅假设您总体上具有良好的网络安全性。

您能否详细介绍一下您当前的设置和需求?

答案4

基本上,Windows 身份验证是推荐的身份验证。理论上它是安全的,前提是你已经拥有良好的网络安全。

相关内容