Microsoft SQL Server 2016为管理员提供了两种实现系统验证用户身份验证的选择:Windows身份验证模式或混合身份验证模式。
Windows身份验证 表示SQL Server仅使用其Windows用户名和密码验证用户的身份。如果用户已经过Windows系统的身份验证,则SQL Server不会要求输入密码。
混合模式 表示SQL Server启用Windows身份验证和SQL Server身份验证。 SQL Server身份验证创建与Windows无关的用户登录。
身份验证基础
身份验证是确认用户或计算机身份的过程。该过程通常包括四个步骤:
-
用户通常通过提供用户名来声明身份。
-
系统要求用户证明自己的身份。最常见的挑战是密码请求。
-
用户通过提供所请求的证据(通常是密码)来响应挑战。
-
系统通过例如针对本地密码数据库或使用集中式认证服务器检查密码来验证用户是否提供了可接受的证据。
对于我们对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可能知道密码的本地帐户。这是很多工作! 总之,您选择的模式会影响组织数据库的安全级别和维护简易性。