选择一个SQL Server身份验证模式

Microsoft SQL Server 2016为管理员提供了两种实现系统认证用户的选择:Windows认证模式或混合认证模式。

Windows身份验证意味着SQL Server仅使用他的Windows用户名和密码验证用户的身份。 如果用户已经通过Windows系统进行身份验证,则SQL Server不会要求输入密码。

混合模式意味着SQL Server同时启用Windows身份验证和SQL Server身份验证。 SQL Server身份验证会创建与Windows无关的用户登录名。

身份验证基础

认证是确认用户或计算机身份的过程。 该过程通常由四个步骤组成:

  1. 用户通常通过提供用户名来声明身份。
  2. 该系统挑战用户证明他或她的身份。 最常见的挑战是请求密码。
  3. 用户通过提供请求的证据(通常是密码)来回应挑战。
  4. 系统通过例如根据本地密码数据库或使用集中认证服务器检查密码来验证用户是否提供了可接受的证据。

在我们对SQL Server身份验证模式的讨论中,关键点在于上面的第四步:系统验证用户身份证明的点。 认证模式的选择决定 SQL Server去验证用户密码的位置。

关于SQL Server身份验证模式

让我们进一步探索这两种模式:

Windows身份验证模式要求用户提供有效的Windows用户名和密码以访问数据库服务器。 如果选择此模式,SQL Server将禁用SQL Server特定的登录功能,并且仅通过其Windows帐户来确认用户的身份。 由于SQL Server依赖Windows进行身份验证,此模式有时称为集成安全性

混合身份验证模式允许使用Windows凭据,但使用管理员在SQL Server中创建和维护的本地SQL Server用户帐户进行补充。 用户的用户名和密码都存储在SQL Server中,并且用户每次连接时都必须重新进行身份验证。

选择认证模式

Microsoft的最佳实践建议是尽可能使用Windows身份验证模式。 主要优点是使用此模式可以让您将整个企业的帐户管理集中在一个地方:Active Directory。 这大大减少了错误或疏忽的可能性。 由于用户的身份由Windows确认,因此可以配置特定的Windows用户和组帐户以登录到SQL Server。 此外,Windows身份验证使用加密来验证SQL Server用户。

另一方面,SQL Server身份验证允许用户名和密码在整个网络中传递,从而使其不太安全。 但是,如果用户从不同的不受信任的域进行连接,或者在使用可能不太安全的Internet应用程序(如ASP.NET)时,此模式可能是一个不错的选择。

例如,考虑受信任的数据库管理员以不友好的条件离开您的组织的情况。 如果您使用Windows身份验证模式,则在禁用或删除DBA的Active Directory帐户时会自动撤销该用户的访问权限。

如果您使用混合身份验证模式,则不仅需要禁用DBA的Windows帐户,还需要梳理每个数据库服务器上的本地用户列表以确保不存在DBA可以知道该密码的本地帐户。 这是很多工作!

总之,您选择的模式会影响组织数据库的安全性和易维护性。