IIS 安全性
本主题描述 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 如何依靠以下措施来保证安全性:
- IIS 身份验证
- IIS 授权
- IIS 加密
IIS 身份验证
在配置 SQL Server Compact Edition 服务器代理时,您需要指定当客户端连接到该 SQL Server Compact Edition 服务器代理时,它们是否必须执行 Microsoft Internet 信息服务 (IIS) 身份验证。IIS 身份验证有三种形式:
- 匿名访问
- 基本身份验证
- 集成 Windows 身份验证
大多数 Internet 应用程序都将使用基本身份验证和安全套接字层 (SSL) 加密。
匿名访问
对匿名访问,IIS 不执行客户端身份验证。SQL Server Compact Edition 服务器代理代表客户端执行的所有任务使用 Internet Guest 帐户的标识执行。默认情况下,Internet Guest 帐户为 IUSR_computername,但您可以指定其他的 Windows 用户帐户作为 Internet Guest 帐户。
基本身份验证
如果使用基本身份验证,则 SQL Server Compact Edition 客户端必须提供有效 Windows 帐户的用户名和密码。IIS 会尝试使用客户端提供的用户名和密码进行登录。如果登录尝试成功,则 SQL Server Compact Edition 服务器代理执行的所有任务都使用这个指定的 Windows 用户帐户的标识执行。如果登录尝试失败,则拒绝该客户端的请求。基本身份验证既可用于 Internet 应用程序,也可用于 Intranet 应用程序。基本身份验证要求每个客户端都要有一个有效 Windows 帐户,且帐户具有相应的用户名和密码。
重要事项: |
---|
默认情况下,基本身份验证用 base64 编码并通过网络传递用户名和密码。如果有人在交换密码时进行窃听,则很容易造成安全风险,因为 base64 编码很容易被解码。为了保证用户密码的安全性,在使用基本身份验证时必须使用安全套接字层 (SSL) 加密。有关详细信息,请参阅“配置 SSL 加密”。 |
集成 Windows 身份验证
集成 Windows 身份验证与基本身份验证的工作原理很相似。SQL Server Compact Edition 客户端必须提供有效 Windows 帐户的用户名和密码。IIS 尝试使用该用户名和密码进行登录。如果登录尝试成功,则 SQL Server Compact Edition 服务器代理执行的所有任务都使用该 Windows 用户帐户的标识执行。如果登录尝试失败,则拒绝该客户端的同步请求。与基本身份验证相比,集成 Windows 身份验证有一个主要优势:与基本身份验证不同,集成 Windows 身份验证不在未加密的情况下通过网络传输客户端的用户名和密码。这样就避免了他人中途截取密码的风险。集成 Windows 身份验证对 Intranet 应用程序无疑是最佳选择。集成 Windows 身份验证很少用于 Internet 应用程序,因为它无法通过代理服务器或防火墙。
注意: |
---|
由于 Microsoft Windows CE 4.2 不支持摘要式身份验证,因此 SQL Server Compact Edition 连接解决方案不支持这种形式的身份验证。 |
IIS 授权
IIS 客户端经过身份验证之后,由 IIS 授权确定该客户端是否能调用 SQL Server Compact Edition 服务器代理。通过控制可以访问 SQL Server Compact Edition 服务器代理的客户端,您就可以控制谁能执行 SQL Server Compact Edition 连接。
IIS 提供了下列机制来控制访问:
- IIS 首先依据配置的所有 IP 地址限制检查客户端的地址。您可以将 Web 服务器配置为不让特定的计算机、计算机组或整个网络访问 SQL Server Compact Edition 服务器代理。当客户端首次尝试访问 SQL Server Compact Edition 服务器代理时,IIS 会根据服务器上的 IP 地址限制设置检查该客户端计算机的 IP 地址。如果该 IP 地址是拒绝访问的地址,则客户端的同步请求会被拒绝,相应的错误消息为“403 禁止访问”。
- 如果 IIS 配置为要求身份验证,则 IIS 将按照本文档“IIS 身份验证”一节所介绍的方式检查客户端是否具有有效的 Windows 用户帐户。如果用户帐户无效,则该客户端的同步请求将被拒绝,同时显示错误消息“403 禁止访问”。
- IIS 接下来会检查 Web 权限。此项 IIS 安全性检查与 SQL Server Compact Edition 连接解决方案无关。
- 然后,IIS 将检查对于 SQL Server Compact Edition 服务器代理的 NTFS 权限,以确保该连接用户具有相应的权限。
注意: |
---|
虽然 IIS 也可以在文件分配表 (FAT) 文件系统下使用,但我们极力建议您使用 NTFS。NTFS 允许使用访问控制列表 (ACL) 授予或拒绝对 SQL Server Compact Edition 服务器代理的访问以及对 IIS 系统上输入和输出消息文件的访问。 |
IIS 加密
配置 SQL Server Compact Edition 服务器代理时,您可以指定 SSL 加密。如果指定了 SSL 加密,则 SQL Server Compact Edition 客户端代理与 SQL Server Compact Edition 服务器代理之间的所有通信都会被加密。有关详细信息,请参阅配置 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 服务器安全性
保护数据库 (SQL Server Compact Edition)