Windows 和 SQL Server 身份验证之间的差异

170 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情

Windows 和 SQL Server 身份验证之间的差异

Windows 身份验证模式和 SQL Server 身份验证模式不同,这篇文章将讨论 Windows 和 SQL Server 身份验证之间的区别。

身份验证是任何安全策略的关键因素。它是证明特定人的身份真实、有效的过程或行为。对于 Microsoft SQL Server,有两种不同的身份验证模式,即 Windows 模式和混合模式。这两种模式决定了系统如何验证或识别特定用户。

如果选择Windows认证方式,实际上是禁用SQL认证方式,允许Windows认证方式。另一方面,如果选择混合身份验证模式,则它允许 Windows 和 SQL Server 身份验证模式。这是因为无法禁用 Windows 身份验证模式,它始终保持活动状态。 

在这篇文章中,我们将讨论 Windows 身份验证模式和 SQL Server 身份验证模式之间的区别。但首先需要了解这些身份验证模式的确切含义。 

什么是 Windows 身份验证模式? 

当你为 MS SQL Server 选择 Windows 身份验证模式时,你必须提供 Windows 帐户的登录凭据才能访问数据库服务器。基本上,此模式不会根据 SQL 特定登录凭据对用户进行身份验证。相反,它会根据用户的 Windows 帐户验证用户的身份。 

此模式背后的主要思想是,首先,需要在 Active Directory 中验证自己。之后,SQL Server 通过操作系统中的 Windows 主体令牌验证身份。 

此外,在这种身份验证模式下,SQL Server 依赖于 Windows 进行用户身份验证。因此,它有时也称为集成安全性。

当使用 Windows 身份验证模式连接到 SQL Server 时,SQL Server 不会验证你的身份。相反,Windows 会做这一切,因为它是默认的身份验证模式。此外,此模式比 SQL Server 身份验证模式更安全。

优点 

  • Windows 身份验证模式利用Kerberos 身份验证协议。因此,它是连接到 SQL Server 的一种安全方法。它利用令牌和服务主体名称 (SPN) 来验证用户的身份。 
  • 此模式不会通过网络传输您的密码。因此,它可以保护您的密码不被盗。 
  • 使用此模式时,SQL Server 不会存储您的登录凭据。 
  • 由于此模式利用 Kerberos 安全协议,可以配置各种密码策略,包括密码过期、帐户锁定和复杂密码。

缺点

  • 当选择 Windows 身份验证模式连接到 SQL Server 时,所有用户都必须是 Active Directory 的一部分。 
  • 数据库管理员对 Active Directory 登录没有任何控制权。

什么是 SQL Server 身份验证模式? 

在 SQL Server 身份验证模式下,用户名和密码是在 SQL Server 中创建的,而不是基于 Windows 帐户。当使用此身份验证模式时,将创建不同的用户名和密码并将其存储在 SQL Server 中。 

每当需要连接到 SQL Server 时,必须提供存储在 SQL Server 中的登录凭据。与 Windows 帐户的凭据无关。此外,请务必注意,必须为 SQL Server 帐户设置一个强用户名和密码。 

对于 SQL Server 登录,可以使用三种可选的密码策略,如下所示: 

  • 用户应在下次连接到 SQL Server 时更改密码。 
  • 还可以强制执行密码过期策略,在密码过期后需要更改密码。 
  • 对 SQL Server 登录强制执行 Windows 登录策略。它需要冗长的密码和复杂性。

优点 

  • 此模式使 SQL Server 能够支持需要 SQL Server 身份验证的旧应用程序和第三方应用程序。 
  • 它允许 SQL Server 支持具有混合操作系统的环境。 
  • 此模式允许任何用户连接到 SQL Server。 
  • SQL Server 支持网站并允许用户创建自己的身份。

缺点

  • 每次要连接到 SQL Server 时,都需要提供登录凭据。 
  • 需要记住用户名和密码。如果有多个 SQL Server 实例,那么记住所有这些凭据会变得很困难。
  •  黑客有可能会窃取您的凭据,因为它们以加密形式存储在主数据库中。 
  • 此模式不使用 Kerberos 安全协议。

Windows 身份验证模式与 SQL Server 身份验证模式

下表重点介绍了 Windows 身份验证模式和 SQL Server 身份验证模式的区别: 

Windows 身份验证模式SQL Server 身份验证模式
此模式允许您使用 Windows 帐户的登录凭据连接到 SQL Server。 此模式允许通过特定于 SQL Server 的凭据连接到 SQL Server。  
它比 SQL Server 身份验证模式更安全。 它不如 SQL Server 身份验证模式安全。 
此模式使用 Kerberos 安全协议。 此模式不使用 Kerberos 安全协议。 
Windows 提供更高级的密码策略。 高级密码策略不适用于 SQL Server 身份验证模式。  
在这种模式下,SQL Server 不负责存储凭据。 SQL Server 帐户的登录凭据存储在 SQL Server 中。

结论

在 Windows 身份验证模式下,可以通过 Windows 帐户连接到 SQL Server。另一方面,SQL Server 身份验证模式要求创建存储在 SQL Server 中的新用户名和密码。由于 Windows 身份验证模式支持 Kerberos 协议,因此比 SQL Server 身份验证模式安全性更高,希望你可以通过这篇文章做出选择。