使数据可供 ArcGIS Server 访问

ArcGIS Server 可以将您的数据,例如地图、工具、影像和定位器等共享给组织内的众多其他计算机,甚至整个 Internet。不过,GIS 服务器计算机需要能够自由访问您的数据以便有效的提供数据。要使数据可供 ArcGIS Server 访问,需要完成以下三个主要工作:

本主题包含以上所有要求。首先,了解 ArcGIS Server 如何透过其服务来存储和引用数据将有助于您阅读以下内容。

ArcGIS Server 存储和访问数据的方式

当您将一个项目作为服务发布时,该项目将放在服务器上。因此,如果将定位器作为地理编码服务进行发布,最终会在 ArcGIS Server 有足够权限访问的服务器上存放一个定位器的副本。

有时,发布的项目可能会引用其他数据。例如,地图可能会引用存储于整个文件系统中不同位置的多种要素类。只有在发布时未将数据注册到服务器时,该数据才会被移动到服务器。如果不希望在发布时将数据复制到服务器,需要明确采取以下步骤以确保 ArcGIS Server 可以查看并访问您的数据。

将数据存储到所有 GIS 服务器计算机能够查看的位置

部署中的每个 GIS 服务器计算机都需要能够读取您的 GIS 资源及其引用的全部数据。例如,在将地图作为服务发布时,地图图层的全部数据必须对所有 GIS 服务器计算机均可见。以下例举了一些存储数据的方法。

将数据存储在每台 GIS 服务器计算机中

将数据保存到本地路径(例如,C:\data)并从中创建服务时,其他 GIS 服务器计算机并不能使用该服务,除非在其对应的 C:\data 中存有数据的副本才可以。将数据的副本加载到每台 GIS 服务器计算机的相同路径中有利于提高性能,但是对于大型或经常更改的数据集,这种解决方案可能并不实用。

将数据存储在共享目录中

使所有 GIS 服务器计算机都能访问数据的另一种方法是,使用操作系统工具共享存储数据的目录。共享目录通常使用通用命名约定 (UNC) 路径,其中包含服务器的名称(例如,\\myServer\data)。当使用 UNC 路径引用数据时,所有 GIS 服务器计算机都将选择合适的计算机来获取数据。

如果在共享目录中存储您的 GIS 资源,请切记,资源中的所有数据源路径也必须使用 UNC 路径或相对路径。例如,如果地图文档中包含来自三个要素类的图层,则这三个要素类的路径必须是 UNC 或相对路径。

虽然共享网络文件夹对引用数据十分方便,但他们对网络流量有要求而且会出现性能瓶颈,而通过本地路径访问数据则不会出现这些问题。

将数据存储在通过 ArcSDE 访问的数据库中

许多 GIS 厂商会将大型数据集存储在关系数据库管理系统 (RDBMS) 中,例如 SQL Server 或 Oracle。Esri ArcSDE 使您可以在 ArcGIS 中非常方便的组织和使用 RDBMS 中的空间数据。

ArcSDE 地理数据库使用方便并且功能强大,但是产生的性能通常不会像访问本地数据那么快。在某些情况下,可以使用 ArcSDE 建立数据的复本并转为其他易于本地存储的格式,例如文件地理数据库。然后,您可以将数据放到每台 GIS 服务器计算机中以达到最佳性能。请参阅 ArcGIS Server 站点数据存储注意事项,以了解此方式是否适合您。

授予 ArcGIS Server 帐户访问您数据的权限

登录自己的计算机时,您使用的帐户名会授予您访问计算机中所有文件及文件夹的权限。未经您的允许,其他人无法访问您的数据。这同样适用于 GIS 数据。ArcGIS Server 帐户至少需要对服务中使用的全部数据具有读取权限。在需要进行编辑时,还需要具有写入权限。

何时需要应用权限?

您发布的项目将被复制到 ArcGIS Server 帐户已授予权限的服务器。但是,这些项目中引用的数据(例如,地图或 globe 中的图层)不一定应用了正确的权限,这要取决于发布时是否已将包含文件夹或数据库注册到服务器:

  • 如果选择让服务器将数据自动复制到服务器,则无需设置任何额外的权限。所有数据都将复制到 ArcGIS Server 帐户已经拥有访问权限的服务器。如果源数据基于文件,并且您要发布要素服务或启用事务的 WFS (WFS-T) 服务,则源数据将被复制到已注册到服务器的地理数据库中,该数据库称为 ArcGIS Server 托管数据库。无需为 ArcGIS Server 帐户授予对已复制到服务器的源数据的访问权限。

    有关详细信息,请参阅发布时将数据自动复制到服务器

  • 如果选择将所包含的文件夹或数据库注册到服务器,则需要显式授予 ArcGIS Server 帐户从该文件夹或数据库进行读取的权限。例如,在发布 globe 服务时,无需授予 ArcGIS Server 帐户对 3DD 文件的读取权限(因为总会将此文件复制到服务器)。但需要明确授予 ArcGIS Server 帐户对此 3DD 文档的图层所引用数据的权限。

    此过程将在本主题的其他部分进行说明。

授予文件型数据的权限

如果您的数据基于文件(例如 shapefile 和图像文件),则需要使用操作系统来设置对于包含数据的文件夹的访问权限。ArcGIS Server 帐户至少须具有对数据的读取权限,如果要编辑该数据,还需要写入权限。以下是一些使用情境:

您应该了解操作系统的安全机制和等级。例如,如果您在 Windows 的共享目录中进行操作,则必须授予 ArcGIS Server 帐户对该文件夹的共享权限,然后必须切换到文件夹属性的安全性 选项卡并授予 ArcGIS Server 帐户该文件夹的 NTFS(文件)权限。如果没有授予两种类型的权限(共享权限和文件权限),您将无法访问资源,因为操作系统将优先对这两种权限加以限制。

授予地理数据库中的数据的权限

当创建引用地理数据库中数据的服务时,您需要确保服务器具有访问地理数据库的相应权限。需要授予的权限类型取决于所使用地理数据库的类型,而如果使用的是 ArcSDE,权限类型则取决于您使用哪种类型的身份验证进行连接。

如果服务要访问文件地理数据库中的数据,则应该使用操作系统来授予 ArcGIS Server 帐户读取包含地理数据库的文件夹的权限。

注注:

ArcGIS 10.1 for Server 不支持个人地理数据库。

授予对 ArcSDE 地理数据库的访问权限的方法取决于 GIS 资源使用数据库身份验证还是操作系统 (OS) 身份验证来连接 ArcSDE。如何得知所使用的身份验证类型?如果地理数据库位于 SQL Server Express 中,则使用 OS 身份验证。如果地理数据库位于企业级 RDBMS(Oracle、SQL Server、DB2 和 Informix)中,在 ArcCatalog 中或 ArcMap 的目录 窗口中查看它的连接属性便可了解使用的是数据库身份验证还是 OS 身份验证。

使用数据库身份验证

如果使用数据库身份验证,请在目录树中查看空间数据库连接属性,并确保已选中有关保存用户名和密码的选项。如果通过使用该连接的数据来创建地图文档或 globe 文档,则用户名和密码将被保存到该地图文档或 globe 文档中,从而使您的服务能够顺利获取数据。

如果您直接从地理数据库中将某项内容作为服务发布(例如定位器或栅格数据集),则需要将数据库连接文件复制到一个所有 GIS 服务器计算机均可访问的位置。

使用 OS 身份验证

如果要通过 OS 身份验证访问您的 ArcSDE 数据,则需要向地理数据库中添加 ArcGIS Server 帐户,然后授予该帐户访问所需资源的权限。服务运行时,它将以 ArcGIS Server 帐户身份登录到 DBMS。添加 ArcGIS Server 帐户并授予相应权限的方法取决于您所使用的 ArcSDE 地理数据库类型:

  • 如果您使用的是企业级 ArcSDE 地理数据库,则将 ArcGIS Server 帐户添加为数据库有效用户的方法取决于所使用的 DBMS。要了解如何为操作系统帐户授予访问权限,查阅 DBMS 文档将会非常有帮助。添加 ArcGIS Server 帐户后,您需要授予该帐户对您将要发布资源的 SELECT 权限。如果要对数据进行编辑,额外的权限则十分必要。

    注注:

    将数据库连接文件复制到所有 GIS 服务器计算机都能够访问的位置这一点十分重要。

  • 如果使用 ArcSDE for SQL Server Express 地理数据库 支持),则需要在 ArcCatalog 或目录 窗口中执行以下步骤,以授予 ArcGIS Server 帐户必要的权限:

    1. 在目录树中双击数据库服务器
    2. 右键单击包含地理数据库的数据库服务器,然后单击权限
    3. 单击添加用户并添加 ArcGIS Server 帐户。单击确定
    4. 双击上述数据库服务器。
    5. 右键单击指定地理数据库,单击管理,然后单击权限
    6. 单击 ArcGIS Server 帐户将其选中,然后选择您希望该帐户拥有的权限级别。查看数据至少需要读取权限,而编辑数据至少需要写入权限。如果需要详细帮助信息来确定您的 ArcGIS Server 帐户需要哪种权限,请参阅 ArcGIS 帮助中的数据库服务器权限快速浏览

将您的数据注册到服务器

在授予 ArcGIS Server 帐户对包含您的数据的文件夹和数据库的相应权限后,您需要使用 ArcGIS Server 管理器或 ArcGIS for Desktop 将它们注册到服务器。数据注册将使您在最大程度上对服务器访问数据的方式进行控制,并帮助您确保数据完全可供服务器访问。

有关完整的说明,请参阅以下主题:

9/15/2013