选择身份验证模式
在安装过程中,必须为数据库引擎选择身份验证模式。可供选择的模式有两种: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 身份验证进行连接
当用户通过 Windows 用户帐户连接时,SQL Server 使用操作系统中的 Windows 主体标记验证帐户名和密码。也就是说,用户身份由 Windows 进行确认。SQL Server 不要求提供密码,也不执行身份验证。Windows 身份验证是默认身份验证模式,并且比 SQL Server 身份验证更为安全。Windows 身份验证使用 Kerberos 安全协议,提供有关强密码复杂性验证的密码策略强制,还提供帐户锁定支持,并且支持密码过期。通过 Windows 身份验证完成的连接有时也称为可信连接,这是因为 SQL Server 信任由 Windows 提供的凭据。
安全说明 |
---|
请尽可能使用 Windows 身份验证。 |
通过 SQL Server 身份验证进行连接
当使用 SQL Server 身份验证时,在 SQL Server 中创建的登录名并不基于 Windows 用户帐户。用户名和密码均通过使用 SQL Server 创建并存储在 SQL Server 中。通过 SQL Server 身份验证进行连接的用户每次连接时必须提供其凭据(登录名和密码)。当使用 SQL Server 身份验证时,必须为所有 SQL Server 帐户设置强密码。有关强密码的指南,请参阅数据库引擎配置 - 帐户设置。
可供 SQL Server 登录名选择使用的密码策略有三种。
用户在下次登录时必须更改密码
要求用户在下次连接时更改密码。更改密码的功能由 SQL Server Management Studio 提供。如果使用该选项,则第三方软件开发人员应提供此功能。
强制密码过期
对 SQL Server 登录名强制实施计算机的密码最长使用期限策略。
强制实施密码策略
对 SQL Server 登录名强制实施计算机的 Windows 密码策略。这包括密码长度和密码复杂性。此功能需要通过 NetValidatePasswordPolicy API 实现,该 API 只在 Windows Server 2003 和更高版本中提供。
确定本地计算机的密码策略
在**“开始”菜单上,单击“运行”**。
在**“运行”对话框中,键入 secpol.msc,然后单击“确定”**。
在**“本地安全设置”应用程序中,依次展开“安全设置”、“帐户策略”,然后单击“密码策略”**。
密码策略将如结果窗格中所示。
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 的计算机上的本地管理员权限。