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 身份验证进行连接

  当用户通过 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 的计算机上的本地管理员权限。

时间: 2024-09-11 08:44:08

Windows身份验证模式和混合模式的相关文章

修改SQL身份验证模式和系统管理员

  1.如何修改SQL Server 2000身份验证模式和系统管理员? 分析:由于千方百剂软件,在数据库安全方面采用了最安全的方式"混合模式",它主要应用于网络主要是Novell网络或者对等网,使用SPX/IP协议和SQL Server验证模式. 优点如下: 创建了Windows NT/2000之上的另外一个安全层次. 支持更大范围的用户,例如非Windows NT客户.Novell网络等. 一个应用程序可以使用单个的SQL Server登录和口令. 下面以操作系统Windows 2

SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法

今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证 方式是Windows身份验证 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了 假设我们遇到很糟糕的情况 sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadm

SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

原文:SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法 SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Windows身份验证 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,

ASP.NET 2.0中的Windows身份验证

本教程阐释在 ASP.NET 2.0 版中,IIS 集成 Windows 身份验证以及 ASP.NET Windows 身份验证的工作机制.同时,阐释 NTLM 和 Kerberos 身份验证的工作机制.此外,本教程还阐释 WindowsAuthenticationModule 类如何构造 WindowsPrincipal 和 WindowsIdentity 对象,然后将这些对象附加到当前的 ASP.NET Web 请求以表示经过身份验证的用户. 概述 身份验证是一个验证客户端身份的过程,通常采

Exchange2007在不同网络环境下会出现集成windows身份验证窗口

问题描述 各位专家好:我的exchange2007server使用基于表单的身份验证,在局域网内部访问正常,在外网访问部分正常,但是在某些地区访问时会出现windows身份验证窗口,输入exchange的用户名和密码也无法通过验证,但是根据分析这些地区的网络环境就是正常的路由器上网方式,不知道是什么原因引起的,有什么解决办法. 解决方案 解决方案二:OutlookorOWA?解决方案三:Outlook还要formbasedauthentication?你太牛了:)这种情况往往是你得验证报文由于某

远程的就不行。-asp.net连接远程数据库,该登录名来自不受信任的域,不能与 Windows 身份验证一起使用。

问题描述 asp.net连接远程数据库,该登录名来自不受信任的域,不能与 Windows 身份验证一起使用. 登录失败.该登录名来自不受信任的域,不能与 Windows 身份验证一起使用. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Data.SqlClient.SqlException: 登录失败.该登录名来自不受信任的域,不能与 Windows 身份验证一起使用. 源错误: 行

windows身份验证-ASP.NET 使用Windows身份验证 怎么获取登陆用户的密码?

问题描述 ASP.NET 使用Windows身份验证 怎么获取登陆用户的密码? 我现在想在web程序中发送邮件(或类似需要域验证的功能),其中Credentials我想使用当前登陆用户的. 请问在这个时候怎么获取密码或有什么别的方式处理? 解决方案 无法获取的,如果可以获取的话,你的电脑系统就没有任何安全性可言... 解决方案二: 只知道里面有个SAM文件 解决方案三: 你指的是,我发布个ASP.NET应用程序,你访问了,我就可以获取到你的windows登录用户和密码? 你觉得这可能么

sql-新装的SQL server 2014无法用windows身份验证登录

问题描述 新装的SQL server 2014无法用windows身份验证登录 刚装好的SQL,系统是win8.1,用的是本机的Microsoft账号,以前登录没问题的. 前几天还原了电脑然后装完SQL就进去不了.网上的解决方法都是针对2005 2008的,2014不知如何解决错误提示:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: Named Pip

求助:登陆失败,该登录名来至不受信任的域不能与windows身份验证一起使用。Ox80004005

问题描述 用VB.NET编了个小的应用软件,数据库用的是SQL2008,发布完成后在本机实验没有问题.但是在其他机器上安装后登陆时,提示:登陆失败,该登录名来至不受信任的域不能与windows身份验证一起使用.错误码是:Ox80004005有人知道是因为什么吗? 解决方案 解决方案二:在config文件里,把windows验证改为Form验证解决方案三:检查连接字符串在数据库里看看sa能不能登陆是不是混合连接而不只是WINDOWS登陆解决方案四:引用1楼zh6335901的回复: 在config