在设置过程中,必须为数据库引擎选择身份验证模式。 有两种可能模式: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 身份验证,可以在域级别创建 Windows 组,并且可以在 SQL Server 上为整个组创建登录名。 从域级别管理访问权限可以简化帐户管理。
重要
请尽可能使用 Windows 身份验证。
通过 SQL Server 身份验证进行连接
使用 SQL Server 身份验证时,登录名是在不是基于 Windows 用户帐户的 SQL Server 中创建的。 用户名和密码是使用 SQL Server 创建的,存储在 SQL Server 中。 使用 SQL Server 身份验证进行连接的用户每次连接时都必须提供其凭据(登录名和密码)。 使用 SQL Server 身份验证时,必须为所有 SQL Server 帐户设置强密码。 有关强密码准则,请参阅 “强密码”。
针对 SQL Server 登录名,有三种可选的密码策略。
用户在下次登录时必须更改密码
要求用户在下次连接时更改密码。 更改密码的功能由 SQL Server Management Studio 提供。 如果使用此选项,第三方软件开发人员应提供此功能。
强制实施密码到期策略
对 SQL Server 登录名强制实施计算机的最大密码期限策略。
强制实施密码策略
计算机的 Windows 密码策略被用于强制实施在 SQL Server 登录凭据上。 这包括密码长度和复杂性。 此功能取决于
NetValidatePasswordPolicy
API,该 API 仅在 Windows Server 2003 及更高版本中可用。
确定本地计算机的密码策略
在 “开始” 菜单上,单击 “运行” 。
在“ 运行 ”对话框中,键入
secpol.msc
,然后单击“ 确定”。在 “本地安全设置” 应用程序中,展开 “安全设置”,展开“ 帐户策略”,然后单击“ 密码策略”。
结果窗格中描述了密码策略。
SQL Server 身份验证的缺点
如果用户是具有 Windows 登录名和密码的 Windows 域用户,他仍必须提供另一个登录名和密码才能连接。 许多用户很难跟踪多个名称和密码。 每次连接到数据库时都必须提供 SQL Server 凭据会令人恼火。
SQL Server 身份验证无法使用 Kerberos 安全协议。
Windows 提供不适用于 SQL Server 登录名的其他密码策略。
加密的 SQL Server 身份验证登录密码必须在连接时通过网络传递。 某些自动连接的应用程序会将密码存储在客户端上。 这些是额外的攻击点。
SQL Server 身份验证的优点
允许 SQL Server 支持需要 SQL Server 身份验证的第三方提供的较旧应用程序和应用程序。
允许 SQL Server 支持具有混合作系统的环境,其中所有用户未通过 Windows 域进行身份验证。
允许用户从未知或不受信任的域进行连接。 例如,一个应用程序,其中已建立的客户使用分配的 SQL Server 登录名进行连接,以接收其订单的状态。
允许 SQL Server 支持基于 Web 的应用程序,用户在其中创建自己的标识。
允许软件开发人员使用基于已知预设 SQL Server 登录名的复杂权限层次结构来分发其应用程序。
注释
使用 SQL Server 身份验证不会限制安装 SQL Server 的计算机上的本地管理员的权限。