IIS 安全性

本主题描述 Microsoft SQL Server Compact 3.5 如何依靠以下措施来保证安全性:

  • IIS 身份验证

  • IIS 授权

  • IIS 加密

IIS 身份验证

在配置 SQL Server Compact 3.5 服务器代理时,您需要指定当客户端连接到该 SQL Server Compact 3.5 服务器代理时,它们是否必须执行 Microsoft Internet 信息服务 (IIS) 身份验证。IIS 身份验证有三种形式:

  • 匿名访问

  • 基本身份验证

  • 集成 Windows 身份验证

大多数 Internet 应用程序都将使用基本身份验证和安全套接字层 (SSL) 加密。

匿名访问

对匿名访问,IIS 不执行客户端身份验证。SQL Server Compact 3.5 服务器代理代表客户端执行的所有任务使用 Internet Guest 帐户的标识执行。默认情况下,Internet Guest 帐户为 IUSR_computername,但您可以指定其他的 Windows 用户帐户作为 Internet Guest 帐户。

基本身份验证

如果使用基本身份验证,则 SQL Server Compact 3.5 客户端必须提供有效 Windows 帐户的用户名和密码。IIS 会尝试使用客户端提供的用户名和密码进行登录。如果登录尝试成功,则 SQL Server Compact 3.5 服务器代理执行的所有任务都使用这个指定的 Windows 用户帐户的标识执行。如果登录尝试失败,则拒绝该客户端的请求。基本身份验证既可用于 Internet 应用程序,也可用于 Intranet 应用程序。基本身份验证要求每个客户端都要有一个有效 Windows 帐户,且帐户具有相应的用户名和密码。

重要

默认情况下,基本身份验证用 base64 编码并通过网络传递用户名和密码。如果有人在交换密码时进行窃听,则很容易造成安全风险,因为 base64 编码很容易被解码。为了保证用户密码的安全性,在使用基本身份验证时必须使用安全套接字层 (SSL) 加密。有关详细信息,请参阅“配置 SSL 加密”。

集成 Windows 身份验证

集成 Windows 身份验证与基本身份验证的工作原理很相似。SQL Server Compact 3.5 客户端必须提供有效 Windows 帐户的用户名和密码。IIS 尝试使用该用户名和密码进行登录。如果登录尝试成功,则 SQL Server Compact 3.5 服务器代理执行的所有任务都使用该 Windows 用户帐户的标识执行。如果登录尝试失败,则拒绝该客户端的同步请求。与基本身份验证相比,集成 Windows 身份验证有一个主要优势:与基本身份验证不同,集成 Windows 身份验证不会以未加密的形式通过网络传输客户端的用户名和密码。这样就避免了他人中途截取密码的风险。集成 Windows 身份验证对 Intranet 应用程序无疑是最佳选择。集成 Windows 身份验证很少用于 Internet 应用程序,因为它无法通过代理服务器或防火墙。

备注

由于 Microsoft Windows CE 4.2 不支持摘要式身份验证,因此 SQL Server Compact 3.5 连接解决方案不支持这种形式的身份验证。

IIS 授权

IIS 客户端经过身份验证之后,由 IIS 授权确定该客户端是否能调用 SQL Server Compact 3.5 服务器代理。通过控制可以访问 SQL Server Compact 3.5 服务器代理的客户端,您就可以控制谁能执行 SQL Server Compact 3.5 连接。

IIS 提供了下列机制来控制访问:

  • IIS 首先依据配置的所有 IP 地址限制检查客户端的地址。您可以将 Web 服务器配置为不让特定的计算机、计算机组或整个网络访问 SQL Server Compact 3.5 服务器代理。当客户端首次尝试访问 SQL Server Compact 3.5 服务器代理时,IIS 会根据服务器上的 IP 地址限制设置检查该客户端计算机的 IP 地址。如果该 IP 地址是拒绝访问的地址,则客户端的同步请求会被拒绝,并显示错误消息:“403 禁止访问”。

  • 如果 IIS 配置为要求身份验证,则 IIS 将按照本文档“IIS 身份验证”一节所介绍的方式检查客户端是否具有有效的 Windows 用户帐户。如果用户帐户无效,则该客户端的同步请求将被拒绝,并显示错误消息:“403 禁止访问”。

  • IIS 接下来会检查 Web 权限。此项 IIS 安全性检查与 SQL Server Compact 3.5 连接解决方案无关。

  • 然后,IIS 将检查对于 SQL Server Compact 3.5 服务器代理的 NTFS 权限,以确保该连接用户具有相应的权限。

备注

虽然 IIS 也可以在文件分配表 (FAT) 文件系统下使用,但我们极力建议您使用 NTFS。NTFS 允许使用访问控制列表 (ACL) 授予或拒绝对 SQL Server Compact 3.5 服务器代理的访问以及对 IIS 系统上输入和输出消息文件的访问。

IIS 加密

配置 SQL Server Compact 3.5 服务器代理时,您可以指定 SSL 加密。如果指定了 SSL 加密,则 SQL Server Compact 3.5 客户端代理与 SQL Server Compact 3.5 服务器代理之间的所有通信都会被加密。有关详细信息,请参阅配置 SSL 加密

在下列情况下应使用 SSL 加密:

  • 将 IIS 配置为使用基本身份验证。

    这对于保证用户的 Internet 密码安全性是必需的。默认情况下,基本身份验证用 base64 编码并通过网络传输用户名和密码。如果有人在交换密码时进行窃听,则很容易造成安全风险,因为 base64 编码很容易被解码。只要使用基本身份验证,就应同时使用 SSL 加密,这样才能保证用户的 Internet 密码的安全性。

  • 仅适用于 RDA:如果应用程序指定了包含密码的 OLEDBConnectionString 参数。

    RDA 的 Pull、Push 和 SubmitSQL 方法都需要 OLEDBConnectionString 参数。此连接字符串以明文形式通过网络传送。如果有人在交换密码时进行窃听,则很容易造成安全风险。

  • 仅适用于复制:如果 SQL Server 发布服务器或分发服务器依赖于 SQL Server 身份验证。

如果将 DistributorSecurityMode 属性指定为 DB_AUTHENTICATION,则分发服务器使用 SQL Server 身份验证。如果将 PublisherSecurityMode 属性指定为 DB_AUTHENTICATION,则发布服务器使用 SQL Server 身份验证。使用 SQL Server 身份验证时,DistributorPassword 和 PublisherPassword 以明文形式通过网络传送。如果有人在交换密码时进行窃听,则很容易造成安全风险。只要使用 SQL Server 身份验证,就应同时使用 SSL 加密,这样才能保证 DistributorPassword 和 PublisherPassword 的安全性。

请参阅

其他资源

SQL Server 安全性

保护数据库 (SQL Server Compact)