通过 Internet 连接到 SQL Server
如果客户端和服务器都与 Internet 相连,就可以使用 SQL Server Management Studio 或基于 OLE DB 或开放式数据库连接 (ODBC) 的客户端应用程序,通过 Internet 连接到 Microsoft SQL Server 数据库引擎实例。
若要通过 Internet 共享数据,必须使用 TCP/IP 网络库,并确保启用 TCP/IP 支持。如果服务器已在域名系统 (DNS) 中注册,就可以用其注册名进行连接。
尽管 Internet 连接不如 Microsoft ISA Server 连接安全,但是,按照下面介绍的方式使用防火墙或加密连接仍有助于保护敏感数据。
对 SQL Server 数据库引擎使用防火墙系统
许多公司使用防火墙系统来防止公司外部人员通过 Internet 对其网络进行非法访问。防火墙可用于限制对网络的访问,其方法是只转发目标为本地网络中的特定 TCP/IP 地址的请求。对其他所有网络地址的请求都将被防火墙阻塞。通过配置防火墙使之转发指定数据库引擎实例的网络地址的网络请求,即可允许 Internet 应用程序访问本地网络中的 SQL Server 数据库引擎实例。
若要使用防火墙,数据库引擎实例必须侦听防火墙所转发的网络地址。SQL Server 数据库引擎的 TCP/IP 网络地址由两部分组成:与计算机中的一个或多个网卡关联的 IP 地址,以及 SQL Server 实例专有的 TCP 端口地址。默认情况下,数据库引擎的默认实例使用 1433 号 TCP 端口。但是,命名实例在首次启动时,会动态分配未使用的 TCP 端口号。如果其他应用程序使用了原来的 TCP 端口号,命名实例在以后启动时也可以动态更改自己的 TCP 端口地址。仅当 SQL Server 当前正在侦听的端口是它自己动态选择的,它才会动态更改为未使用的 TCP 端口;而如果静态分配的端口被其他应用程序占用,SQL Server 将显示错误并继续侦听其他端口。但其他应用程序不太可能使用 1433 号端口,因为该端口是 SQL Server 数据库引擎 的知名注册地址。
在对 数据库引擎 命名实例使用防火墙时,请使用 SQL Server 配置管理器来配置命名实例,使其侦听特定的 TCP 端口。必须选择同一计算机或群集上运行的其他应用程序未使用的 TCP 端口。有关各个应用程序已注册使用的知名端口列表,请访问 Internet Assigned Numbers Authority 网站 http://www.iana.org。
网络管理员应配置防火墙,使之转发数据库引擎实例正在侦听的 IP 地址和 TCP 端口(默认实例使用的 1433 号 TCP 端口,或命名实例配置使用的 TCP 端口)上的 SQL Server 通信。而且,由于 Microsoft SQL Server 使用 1434 号 UDP 端口从应用程序建立通信链接,因此网络管理员应该配置防火墙,使之转发对同一 IP 地址上的 1434 号 UDP 端口的请求。有关 1434 号 UDP 端口的详细信息,请参阅 SQL Server Browser 服务。
例如,假设有一台计算机运行了 SQL Server 数据库引擎的一个默认实例和两个命名实例。配置该计算机,使这三个实例侦听的网络地址都具有相同的 IP 地址。默认实例侦听 1433 号 TCP 端口,而两个命名实例分别侦听 1434 号和 1954 号 TCP 端口。然后网络管理员应配置防火墙,使之转发对该 IP 地址上的 1434 号 UDP 端口以及 1433 号、1434 号和 1954 号 TCP 端口的网络请求。
有关默认 Windows 防火墙设置的详细信息以及有关影响数据库引擎、Analysis Services、Reporting Services 和 Integration Services 的 TCP 端口的说明,请参阅配置 Windows 防火墙以允许 SQL Server 访问。