使数据可供 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 或相对路径。
虽然共享网络文件夹对引用数据十分方便,但他们对网络流量有要求而且会出现性能瓶颈,而通过本地路径访问数据则不会出现这些问题。
将数据存储在数据库中
许多 GIS 厂商会将大型数据集存储在关系数据库管理系统 (RDBMS) 中,例如 、DB2、Informix、Netezza、Oracle 或 PostgreSQL。Esri 本身支持这些数据库,从而使您可以在 ArcGIS 中非常方便的组织和使用 RDBMS 中的空间数据。
Esri 还提供了可在 RDBMS 中部署的地理数据库。地理数据库和数据库方便而功能强大,但由于需要通过网络访问,所以通常无法发挥您在访问本地数据时所看到的那种高性能。在某些情况下,可以使用地理数据库建立数据的复本并转为其他易于本地存储的格式,例如文件地理数据库。然后,您可以将数据放到每台 GIS 服务器计算机中以达到最佳性能。
请参阅 ArcGIS Server 站点数据存储注意事项,以了解此方式是否适合您。
授予 ArcGIS Server 帐户访问您数据的权限
登录自己的计算机时,您使用的帐户名会授予您访问计算机中所有文件及文件夹的权限。未经您的允许,其他人无法访问您的数据。这同样适用于 GIS 数据。对于在服务中所使用的文件夹中的任何数据以及您通过操作系统身份验证进行访问的数据库中的任何数据,ArcGIS Server 帐户至少需要拥有读取权限。在需要进行编辑时,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
授予对数据库中数据的访问权限
当创建引用数据库中数据的服务时,您需要确保服务器具有访问数据的相应权限。需要授予的权限类型取决于所使用数据库的类型,以及您使用哪种类型的身份验证进行连接。
ArcGIS 10.1 for Server及更高版本不支持个人地理数据库。
您使用何种方式授予对数据库中数据的访问权限取决于您在连接到数据库时使用的是数据库身份验证还是操作系统 (OS) 身份验证。如何得知所使用的身份验证类型?如果数据位于 Desktop 或工作组级地理数据库中(通过 ArcGIS for Desktop 中的“数据库服务器”节点进行访问),使用 OS 身份验证。如果数据位于企业 RDBMS(Oracle、、DB2、Informix、Netezza、PostgreSQL 或 Teradata)中,在 ArcCatalog 中或 ArcMap 的目录 窗口中查看连接属性便可了解使用的是数据库身份验证还是 OS 身份验证。
ArcGIS for Server (Linux) 不支持使用 Windows 中 ODBC 连接的连接方式。
使用数据库身份验证
如果使用数据库身份验证,请在目录树中查看数据库连接属性,并确保已选中有关保存用户名和密码的选项。如果通过使用该连接的数据来创建地图文档或 globe 文档,则用户名和密码将被保存到该地图文档或 globe 文档中,从而使您的服务能够顺利访问数据。
如果要允许编辑数据,则必须向建立连接的数据库用户授予数据写入权限。
使用 OS 身份验证
如果要通过 OS 身份验证访问数据,则必须向数据库中添加 ArcGIS Server 帐户,然后授予该帐户访问所需资源的权限。服务运行时,它将以 ArcGIS Server 帐户身份登录到 DBMS。
您添加 ArcGIS Server 帐户并向其授予权限的方式可能有所不同。要了解如何为操作系统帐户授予访问权限,查阅 DBMS 文档将会非常有帮助。添加 ArcGIS Server 帐户后,您需要授予该帐户对您将要发布资源的 SELECT 权限。如果要允许编辑数据,将需要数据的写入权限。
将您的数据注册到服务器
在授予 ArcGIS Server 帐户对包含您的数据的文件夹和数据库的相应权限后,您需要使用 ArcGIS Server 管理器或 ArcGIS for Desktop 将它们注册到服务器。数据注册将使您在最大程度上对服务器访问数据的方式进行控制,并帮助您确保数据完全可供服务器访问。
有关完整的说明,请参阅以下主题: