配置微软代理服务器,通过Internet进行SQL Server 7.0的复制

ZDNet软件频道 时间:2000-11-21 作者:翻译:张猛 |  我要评论()
本文关键词:
这篇文章介绍如何把微软SQL Server和微软代理服务器结合起来,在不影响数据库安全的情况下,通过Internet进行数据复制。

安全性概述

在设计和实施分布式应用程序时,安全方面的考虑是很重要的部分。因为复制通过网络把数据从一个服务器分配到许多服务器上,所以理解网络安全的层次就非常必要。

被复制数据的分散,也增加了管理数据访问或限制数据访问的复杂性。SQL Server的复制使用组合的安全机制来保护应用程序里的数据和商业逻辑。

考虑安全需求的一个方法是:查看不同访问层的需求。在增加后续层之前,每个较低的层次必须工作正常。每个后续层的操作,都依赖先行层的正常操作。下面,是需要配置的三个安全层次:

  • Windows NT 用户账户
  • 代理服务器安全
  • SQL Server 复制账户安全

Windows NT 用户账户

前面图例里的三个服务器,在复制进行之前,必须建立起彼此间的连接。首先,出版者/发行者必须连接到代理服务器。然后,订户必须建立到出版者/发行者的SQL Server连接。最后,订户与代理服务器上的FTP服务建立连接。

Windows NT 出版者/发行者账户

通过Internet复制数据的第一步是:在出版者/发行者和代理服务器之间建立网络连接。在 SQL Server 启动时, MSSQLServer 服务向代理服务器请求权限,使用外部代理接口绑定一个端口,供自己独占使用。代理服务器必须能对MSSQLServer 的服务账户进行身份认证,还必须对用户账户进行适当的配置,才能正常操作。

要想提高安全性,在出版者/发行者上使用的MSSQLServer账户,应当使用与登录Windows NT时不同的账户。


图 2. 出版者/发行者账户

Windows NT 代理服务器账户

在代理服务器上的Winsock服务权限列表当中,必须输入出版者/发行者上的MSSQLServer 账户。当请求权限,绑定端口时,MSSQLServer 把它的账户提交给代理服务器,进行身份认证。在代理服务器确认了MSSQLServer 账户的身份,并绑定端口之后,就建立起一条从Internet到出版者/发行者的直接连接。

要访问代理服务器上的FTP服务,订户的复制代理要向代理服务器提供一个账户,代理服务器在完成FTP连接之前,对这个账户进行身份认证。这个账户必须:

  • 在FTP站点操作员列表中输入。
  • 具有本地登录权限。
  • 具有对快照文件夹的读权限。

任何时候,在建立新的订阅时,都会自动建立这个用户账户,并保存到Mssubscriptions_properties这个表里。

Windows NT 订户账户

在复制使用的连接建立之前,必须在订户上登记了出版者/发行者所在的服务器。除非另行指定,否则复制代理将使用出版者/发行者登记使用的账户建立连接。

注意集成的安全性   注意不要使用集成账户登记出版者/发行者。集成账户指的是具有多种身份与用途的账户。对于非集成账户,可以专为它设置权限,从而限制对出版物的访问。

代理服务器的安全

在多穴服务器上,在Internet用户取得访问内部网络资源的权限之前,必须在内部代理接口到外部代理接口之间建立连接。代理服务器监视着内部用户或服务,只允许通过授权认证的用户建立连接。

就象我们前面讨论过的,出版者/发行者服务器上的 MSSQLServer 服务要与代理服务器建立连接,并且绑定端口,这样才能把SQL Server暴露给外部代理接口。任何提供了端口号、外部代理接口IP地址以及有效登录账户的 Internet 用户,都能取得对SQL Server的访问权。

复制活动需要访问FTP服务。在需要的时候,订户登录SQL Server时所使用的账户,也被用来初始化FTP服务。缺省情况下,这个账户与在订户上登记出版者/发行者服务器时使用的账户相同。但是,在建立推(pull)型订阅时,可以在MSsubscription_properties表里输入另外的账户名称和口令,让FTP使用另外一个账户。不管使用哪种方式,使用的账户必须:

  • 是一个得到授权的FTP站点操作员。
  • 拥有本地登录权限。
  • 对代理服务器上的快照文件夹,拥有读权限。

对SQL Server进行的缺省配置包括:

  • 使用代理服务器的Winsock服务,绑定到1433端口。
  • 使用代理服务器的Socks代理服务,把FTP服务绑定到21端口。

不论选择的什么复制类型,首先要在订户和出版者之间建立一个ODBC连接。需要与代理服务器上的FTP服务建立连接时,发行者会通知订户。在发行者要求连接时,订户初始化与FTP服务的连接,并提取在快照文件夹里发现的任何数据。


图 3. 代理服务器的安全

SQL Server 复制登录账户

对于推(pull)类型的订阅,需要在订户上登记出版者/发行者服务器,才能进行复制。在注册过程里,要使用出版者/发行者服务器上已有的用户名和口令,才能取得访问出版者服务器的出版数据库的访问权。能够在订户服务器上登记出版服务器,意味着可以建立Windows NT级别的网络连接,或者SQL Server 级别的网络连接。如果不能在订户服务器上登记出版者/发行者,请仔细检查每个连接以及每个账户的权限。

出版者/发行者使用 MSSQLServer 账户,绑定了一条到Winsock 1433端口和外部代理接口的通路。一定要确保:登记出版者/发行者时使用的账户,在出版者/发行者服务器上拥有足够的权限。

在订户服务器上登记的出版者/发行者服务器登录账户,应当是一个标准的SQL Server登录账户。为了提高安全性,除了对出版数据库的有限权力,在SQL Server上不应当给这个账户授予任何特殊的访问权限。对于出版数据库的访问权限,可以授予guest账户,或者在数据库里专门增加一个对出版数据库有访问权限的用户。另外,在一个允许订户订阅的出版物上,这个账户必须被包含在每个出版物的访问列表里(PAL)。


图 4. SQL Server 复制登录账户

对出版物的访问

安全机制的最后一级是:在暴露出版物的数据之前,检查用户的账户。因为出版者可能拥有一对多的关系,所以每个出版物能够通过自己的PAL对访问进行控制。复制代理使用的登录账户,在访问出版物时,都要根据每个出版物的PAL进行验证。如果在PAL里没有找到订户的登录账户,就拒绝访问。为不同的订户使用不同的登录账户,能够限制他们对出版物的访问。


图 5. 出版物的访问


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134