Windows身份验证模式和混合模式的区别

     某日,A君问起Windows身份验证模式和混合模式验证的区别与优缺时,根据安全性的考虑,按照到了此文做为参考,学习下~ 数据库

     在安装过程当中,必须为数据库引擎选择身份验证模式。 可供选择的模式有两种:Windows 身份验证模式和混合模式。 Windows 身份验证模式会启用 Windows 身份验证并禁用 SQL Server 身份验证。 混合模式会同时启用 Windows 身份验证和 SQL Server 身份验证。 Windows 身份验证始终可用,而且没法禁用。 安全

    若是在安装过程当中选择混合模式身份验证,则必须为名为 sa 的内置 SQL Server 系统管理员账户提供一个强密码并确认该密码。 sa 账户经过使用 SQL Server 身份验证进行链接。 服务器

    若是在安装过程当中选择 Windows 身份验证,则安装程序会为 SQL Server 身份验证建立 sa 账户,但会禁用该账户。 若是稍后更改成混合模式身份验证并要使用 sa 账户,则必须启用该账户。 您能够将任何 Windows 或 SQL Server 账户配置为系统管理员。 因为 sa 账户广为人知且常常成为恶意用户的攻击目标,所以除非应用程序须要使用 sa 账户,不然请勿启用该账户。 切勿为 sa 账户设置空密码或弱密码。若要从 Windows 身份验证模式更改成混合模式身份验证并使用 SQL Server 身份验证,请参阅更改服务器身份验证模式 学习

    当用户经过 Windows 用户账户链接时,SQL Server 使用操做系统中的 Windows 主体标记验证账户名和密码。 也就是说,用户身份由 Windows 进行确认。 SQL Server 不要求提供密码,也不执行身份验证。 Windows 身份验证是默认身份验证模式,而且比 SQL Server 身份验证更为安全。 Windows 身份验证使用 Kerberos 安全协议,提供有关强密码复杂性验证的密码策略强制,还提供账户锁定支持,而且支持密码过时。 经过 Windows 身份验证完成的链接有时也称为可信链接,这是由于 SQL Server 信任由 Windows 提供的凭据。 spa

安全说明 安全说明

请尽量使用 Windows 身份验证。 操作系统

     当使用 SQL Server 身份验证时,在 SQL Server 中建立的登陆名并不基于 Windows 用户账户。 用户名和密码均经过使用 SQL Server 建立并存储在 SQL Server 中。 经过 SQL Server 身份验证进行链接的用户每次链接时必须提供其凭据(登陆名和密码)。 当使用 SQL Server 身份验证时,必须为全部 SQL Server 账户设置强密码。有关强密码的指南,请参阅强密码 ci

    可供 SQL Server 登陆名选择使用的密码策略有三种。 开发

  • 用户在下次登陆时必须更改密码 get

    要求用户在下次链接时更改密码。 更改密码的功能由 SQL Server Management Studio 提供。 若是使用该选项,则第三方软件开发人员应提供此功能。 it

  • 强制密码过时

    对 SQL Server 登陆名强制实施计算机的密码最长使用期限策略。

  • 强制实施密码策略

    对 SQL Server 登陆名强制实施计算机的 Windows 密码策略。 这包括密码长度和密码复杂性。 此功能须要经过 NetValidatePasswordPolicy API 实现,该 API 只在 Windows Server 2003 和更高版本中提供。

肯定本地计算机的密码策略

  1. “开始”菜单上,单击“运行”

  2. “运行”对话框中,键入 secpol.msc,而后单击“肯定”

  3. “本地安全设置”应用程序中,依次展开“安全设置”“账户策略”,而后单击“密码策略”

    密码策略将如结果窗格中所示。

SQL Server 身份验证的缺点

  • 若是用户是具备 Windows 登陆名和密码的 Windows 域用户,则还必须提供另外一个用于链接的 (SQL Server) 登陆名和密码。 记住多个登陆名和密码对于许多用户而言都较为困难。 每次链接到数据库时都必须提供 SQL Server 凭据也十分烦人。

  • SQL Server 身份验证没法使用 Kerberos 安全协议。

  • SQL Server 登陆名不能使用 Windows 提供的其余密码策略。

SQL Server 身份验证的优势

  • 容许 SQL Server 支持那些须要进行 SQL Server 身份验证的旧版应用程序和由第三方提供的应用程序。

  • 容许 SQL Server 支持具备混合操做系统的环境,在这种环境中并非全部用户均由 Windows 域进行验证。

  • 容许用户从未知的或不可信的域进行链接。 例如,既定客户使用指定的 SQL Server 登陆名进行链接以接收其订单状态的应用程序。

  • 容许 SQL Server 支持基于 Web 的应用程序,在这些应用程序中用户可建立本身的标识。

  • 容许软件开发人员经过使用基于已知的预设 SQL Server 登陆名的复杂权限层次结构来分发应用程序。

    注意 注意

    使用 SQL Server 身份验证不会限制安装 SQL Server 的计算机上的本地管理员权限。

    via:http://technet.microsoft.com/zh-cn/library/ms144284.aspx