[面试题]SQL Server 2K 的Windows身份验证和SQL Server身份验证?
1 为什么要采用这两种验证方式?
2 这两种验证方式有什么不同?
3 这两种验证方式的实现方式?
4 什么情况下采用第Windows身份验证?
5 什么情况下采用SQL Server身份验证?
------解决方案--------------------关注
------解决方案--------------------1 为什么要采用这两种验证方式?
连接SQL更弹性
2 这两种验证方式有什么不同?
Windows身份验证:需要Windows用户相关权限
SQL Server身份验证:需SQL用户名和密码
------解决方案--------------------接分
------解决方案--------------------身份验证模式
Microsoft® SQL Server™ 可以在两种安全(身份验证)模式之一下工作:
Windows 身份验证模式(Windows 身份验证)
Windows 身份验证模式使用户得以通过 Microsoft Windows NT® 4.0 或 Windows® 2000 用户帐户进行连接。
混合模式(Windows 身份验证和 SQL Server 身份验证)
混合模式使用户得以使用 Windows 身份验证或 SQL Server 身份验证与 SQL Server 实例连接。在 Windows 身份验证模式或混合模式下,通过 Windows NT 4.0 或 Windows 2000 用户帐户连接的用户可以使用信任连接。
提供 SQL Server 身份验证是为了向后兼容。例如,如果创建单个 Windows 2000 组并向该组添加所需的所有用户,则需要授予 Windows 2000 组登录到 SQL Server 的权限以及对任何必需数据库的访问权限。
Windows 身份验证
当用户通过 Windows NT 4.0 或 Windows 2000 用户帐户进行连接时,SQL Server 通过回叫 Windows NT 4.0 或 Windows 2000 以获得信息,重新验证帐户名和密码。
SQL Server 通过使用网络用户的安全特性控制登录访问,以实现与 Windows NT 4.0 或 Windows 2000 的登录安全集成。用户的网络安全特性在网络登录时建立,并通过 Windows 域控制器进行验证。当网络用户尝试连接时,SQL Server 使用基于 Windows 的功能确定经过验证的网络用户名。SQL Server 于是验证此人是否是如其所说的那个人,然后只基于网络用户名允许或拒绝登录访问,而不要求单独的登录名和密码。
与 SQL Server 身份验证相比,Windows 身份验证有某些优点,主要是由于它与 Windows NT 4.0 和 Windows 2000 安全系统的集成。Windows NT 4.0 和 Windows 2000 安全系统提供更多的功能,如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多次登录请求无效后锁定帐户。
由于 Windows NT 4.0 和 Windows 2000 用户和组只由 Windows NT 4.0 或 Windows 2000 维护,因此当用户进行连接时,SQL Server 将读取有关该用户在组中的成员资格信息。如果对已连接用户的可访问权限进行更改,则当用户下次连接到 SQL Server 实例或登录到 Windows NT 4.0 或 Windows 2000 时(取决于更改的类型),这些更改会生效。
说明 当 SQL Server 实例在 Windows 98 或 Microsoft Windows Millennium 版上运行时,Windows 身份验证模式不可用。
SQL Server 身份验证
当用户用指定的登录名称和密码从非信任连接进行连接时,SQL Server 通过检查是否已设置 SQL Server 登录帐户,以及指定的密码是否与以前记录的密码匹配,自己进行身份验证。如果 SQL Server 未设置登录帐户,则身份验证将失败,而且用户收到错误信息。
提供 SQL Server 身份验证是为了向后兼容性,因为为 SQL Server 7.0 版或更早的版本编写的应用程序可能要求使用 SQL Server 登录和密码。另外,当 SQL Server 实例在 Windows 98 上运行时,必须使用 SQL Server 身份验证,因为在 Windows 98 上不支持 Windows 身份验证模式。因此,SQL Server 在 Windows 98 上运行时使用混合模式(但只支持 SQL Server 身份验证)。
应用程序开发人员和数据库用户也许更喜欢 SQL Server 身份验证,因为他们熟悉登录和密码功能。对于连接到 Windows NT 4.0 和 Windows 2000 客户端以外的其它客户端,可能也必须使用 SQL Server 身份验证。
------解决方案--------------------从来没研究过呢
不过个人感觉
1.应该出于安全考虑,但不想让人知道计算机密码的时候必要采用SQL身份验证
2.一个是只要能登陆WINDOWS并且可登陆SQL的用户就可以访问,一个是必须提供用户名和密码才能访问。后者用于远程访问,前者大部分用于系统管理员。
3.楼上说了
4.什么情况?管理员登陆的时候大部分用windows,SQL登陆方式大部分提供给程序或者其他需要授权登陆的人员使用。
----------------------------
在平时积累的经验,纯属个人愚见
仅供lz参考
------解决方案--------------------面试问这种问题真是够讨厌的