使数据可供 ArcGIS Server 访问
ArcGIS Server 可以将您的数据,例如地图、工具、影像和定位器等共享给组织内的众多其他计算机,甚至整个 Internet。不过,GIS 服务器计算机需要能够自由访问您的数据以便有效的提供数据。要使数据可供 ArcGIS Server 访问,需要完成以下三个主要工作:
- 将您的数据存储在所有 GIS 服务器计算机均可见的位置。
- 授予 ArcGIS Server 帐户访问您数据的权限。ArcGIS Server 帐户是用于安装 ArcGIS Server 的帐户,而不是在创建 ArcGIS Server 站点时指定的主站点管理员帐户。
- 将数据注册到服务器。
本主题包含以上所有要求。首先,了解 ArcGIS Server 如何透过其服务来存储和引用数据将有助于您阅读以下内容。
ArcGIS Server 存储和访问数据的方式
当您将一个项目作为服务发布时,该项目将放在服务器上。因此,如果将定位器作为地理编码服务进行发布,最终会在 ArcGIS Server 有足够权限访问的服务器上存放一个定位器的副本。
有时,发布的项目可能会引用其他数据。例如,地图可能会引用存储于整个文件系统中不同位置的多种要素类。只有在发布时未将数据注册到服务器时,该数据才会被移动到服务器。如果不希望在发布时将数据复制到服务器,需要明确采取以下步骤以确保 ArcGIS Server 可以查看并访问您的数据。
将数据存储到所有 GIS 服务器计算机能够查看的位置
部署中的每个 GIS 服务器计算机都需要能够读取您的 GIS 资源及其引用的全部数据。例如,在将地图作为服务发布时,地图图层的全部数据必须对所有 GIS 服务器计算机均可见。以下例举了一些存储数据的方法。
将数据存储在每台 GIS 服务器计算机中
将数据保存到本地路径(例如,/opt/local/data)并从中创建服务时,其他 GIS 服务器计算机并不能使用该服务,除非在其对应的 /opt/local/data 中存有数据的副本才可以。将数据的副本加载到每台 GIS 服务器计算机的相同路径中有利于提高性能,但是对于大型或经常更改的数据集,这种解决方案可能并不实用。
将数据存储在共享目录中
使所有 GIS 服务器计算机都能访问数据的另一种方法是,使用操作系统工具共享存储数据的目录。共享网络目录通常使用 NFS 安装文件夹,其中包含服务器的名称(例如,/net/myserver/opt/local/data)。当使用 NFS 路径引用数据时,所有 GIS 服务器计算机都将选择合适的计算机来获取数据。
如果在共享目录中存储您的 GIS 资源,请切记,资源中的所有数据源路径也必须使用 NFS 路径或相对路径。例如,如果地图文档中包含来自三个要素类的图层,则这三个要素类的路径必须是 NFS 或相对路径。
虽然共享网络文件夹对引用数据十分方便,但他们对网络流量有要求而且会出现性能瓶颈,而通过本地路径访问数据则不会出现这些问题。
将数据存储在通过 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 帐户至少须具有对数据的读取权限,如果要编辑该数据,还需要写入权限。以下是一些使用情境:
- 如果您的数据存储在 GIS 服务器计算机上(如果有多台 GIS 服务器,则为其中一台),则授予 ArcGIS Server 帐户对包含数据的文件夹的读取权限(还可以授予写入权限)。
- 如果数据未存储在 GIS 服务器计算机中,并且您指定本地帐户作为 ArcGIS Server 帐户,则需要在托管数据的计算机中先创建一个相同的本地帐户(使用相同的用户名和密码)。然后再授予该本地帐户对包含数据的文件夹的读取权限(还可以同时授予写入权限)。只要包含数据的计算机中的本地帐户与 GIS 服务器计算机中的本地帐户相同,GIS 服务器计算机就可以访问该数据。
- 如果数据未存储在 GIS 服务器计算机中,请执行以下操作:
- 授予 ArcGIS Server 帐户访问数据文件的权限。
- 授予 ArcGIS Server 帐户访问数据文件夹的权限。您需要对此文件夹下的每个目录都进行授权。对于上方的示例,您需要授予对以下所有文件夹的权限:
- /opt
- /opt/local/
- /opt/local/data
授予地理数据库中的数据的权限
当创建引用地理数据库中数据的服务时,您需要确保服务器具有访问地理数据库的相应权限。需要授予的权限类型取决于所使用地理数据库的类型,而如果使用的是 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 身份验证。
ArcGIS for Server (Linux) 不支持使用 Windows 中 ODBC 连接的连接方式。
使用数据库身份验证
如果使用数据库身份验证,请在目录树中查看空间数据库连接属性,并确保已选中有关保存用户名和密码的选项。如果通过使用该连接的数据来创建地图文档或 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 地理数据库(不受 ArcGIS for Server (Linux) 支持),则需要在 ArcCatalog 或目录 窗口中执行以下步骤,以授予 ArcGIS Server 帐户必要的权限:
- 在目录树中双击数据库服务器。
- 右键单击包含地理数据库的数据库服务器,然后单击权限。
- 单击添加用户并添加 ArcGIS Server 帐户。单击确定。
- 双击上述数据库服务器。
- 右键单击指定地理数据库,单击管理,然后单击权限。
- 单击 ArcGIS Server 帐户将其选中,然后选择您希望该帐户拥有的权限级别。查看数据至少需要读取权限,而编辑数据至少需要写入权限。如果需要详细帮助信息来确定您的 ArcGIS Server 帐户需要哪种权限,请参阅 ArcGIS 帮助中的数据库服务器权限快速浏览。
将您的数据注册到服务器
在授予 ArcGIS Server 帐户对包含您的数据的文件夹和数据库的相应权限后,您需要使用 ArcGIS Server 管理器或 ArcGIS for Desktop 将它们注册到服务器。数据注册将使您在最大程度上对服务器访问数据的方式进行控制,并帮助您确保数据完全可供服务器访问。
有关完整的说明,请参阅以下主题: