教程:PostgreSQL 中地理数据库入门

在 Standard 或 Advanced 许可等级下可用。

复杂程度: 初级 数据要求: 使用自备的数据

本教程举例说明了如何在 Microsoft Windows 服务器上的 PostgreSQL 中开始使用企业级地理数据库。本教程假设您已经安装了 ArcGIS ServerArcGIS DesktopArcGIS Pro,并且您具有数据库和地理数据库管理员登录帐户的连接信息。

安装并配置 PostgreSQL

在本教程中,您可以运行 My Esri 上提供的 PostgreSQL 安装或者从其他来源获得受支持的 PostgreSQL 版本。安装 PostgreSQL 之后,通过修改 pg_hba.conf 文件配置数据库集群,以便接受远程连接。

下载并安装 PostgreSQL

  1. My Esri 下载 PostgreSQL 安装文件。
  2. 在要安装 PostgreSQLWindows 服务器上运行安装程序可执行文件。

    除了为非英语站点设置区域设置和排序规则之外,可以直接使用安装向导中提供的默认值。

    您将在安装过程中指定 postgres 超级用户的密码。请记住此密码,因为它是数据库集群的数据库管理员密码,并且会在本教程的后面部分用到。

首次安装 PostgreSQL 时,只能通过本地服务器进行连接。如要允许网络中的其他计算机进行连接,则必须修改 pg_hba.conf 文件。

  1. 在文本编辑器中,打开 PostgreSQL 数据目录中的 pg_hba.conf 文件。

    默认位置为 C:\Program Files\PostgreSQL\<PostgreSQL version>\data

  2. 指定您想要访问数据库的客户端地址。

    在以下示例中,从 orgnetwor.com 连接的所有计算机均可以访问数据库集群上的所有数据库:

    #TYPE  DATABASE     USER    ADDRESS            METHOD
    host     all        all     .orgnetwork.com     md5
    

    为了提高数据库集群的安全性,您可以限制对特定 IP 地址或一系列地址的访问,指定要授予访问权限的一个或一系列数据库,或者指定哪些用户可以连接。甚至可以明确禁止访问某一 IP 地址或一系列 IP 地址。有关详细信息和示例,请参阅 PostgreSQL 文档

  3. 重新启动 PostgreSQL 服务。

    Windows 服务列表中右键单击 postgresql-x64 服务并单击重启即可实现。

将 ST_Geometry 库放入 PostgreSQL 库目录

PostgreSQL 中创建地理数据库依赖于是否存在 ST_Geometry 库。创建地理数据库之前,必须将相应的库放入安装 PostgreSQL 的库目录中。ST_Geometry 库可在 ArcMapDatabaseSupport 文件夹或 ArcGIS Server 客户端安装中找到,也可以从 My Esri 中下载。

由于本教程假设 PostgreSQL 安装在 Windows 服务器上,因此将使用 Windows64 文件夹中的 ST_Geometry 库。

  1. Windows 资源管理器中,导航至 ArcGIS 客户端安装目录中的 Windows ST_Geometry 库位置或从 My Esri 中下载文件。
  2. 从此位置复制 st_geometry.dll
  3. 导航到数据库服务器上的 PostgreSQL lib 库目录并将库粘贴到该位置。

    Windows 中,默认位置为 C:\Program Files\PostgreSQL\<PostgreSQL version>\lib

创建地理数据库

可以使用创建企业级地理数据库地理处理工具在 PostgreSQL 中创建数据库、sde 用户、sde 方案及地理数据库。

  1. 启动 ArcGIS Desktop 客户端或 ArcGIS Pro 并打开创建企业级地理数据库工具。
  2. 需要以 postgres 超级用户身份连接 PostgreSQL 数据库集群来提供信息,以创建数据库和 sde 用户。此外,还必须指向在授权 ArcGIS Server 站点时生成的密钥代码文件。
  3. 单击确定 (ArcMap) 或运行 (ArcGIS Pro)。

PostgreSQL 中创建数据库、sde 用户、sde 方案及地理数据库。

创建拥有数据的用户

存储在地理数据库中的数据应归 sde 用户之外的其他用户所有。使用创建数据库用户地理处理工具在 PostgreSQL 数据库集群中创建用户并在新建数据库中创建方案。

但是要创建用户,必须先以数据库管理员的身份连接地理数据库。此时,您可以 postgres 超级用户或 sde 用户身份进行连接,因为创建企业级地理数据库工具将授予 sde 用户超级用户权限。

创建以 postgres 或 sde 用户登录的数据库连接。

  1. 连接到数据库。在 ArcMap 中,展开 ArcMap 的目录树中的数据库连接节点,然后双击添加数据库连接。在 ArcGIS Pro 中,右键单击目录窗格中的数据库文件夹,然后单击新建数据库连接

    将打开数据库连接对话框。

  2. 提供以 PostgreSQL 超级用户连接新建数据库所需的信息。

    由于要在地理处理工具中使用此连接文件,因此必须选中保存用户名和密码。但是运行此工具后,您应该在连接文件中取消选中此选项并以不同用户进行连接,或者删除此连接文件从而防止可以访问此文件的其他用户以数据库管理员登录地理数据库。

  3. 单击确定创建连接。

数据库连接下出现新建的连接文件。

接下来,您可以运行创建数据库用户工具。

  1. 打开创建数据库用户
  2. 将新的连接文件拖至创建数据库用户工具的输入数据库工作空间文本框中。
  3. 数据库用户文本框中输入新用户的名称,然后在数据库用户密码文本框中输入新用户的密码。
  4. 单击确定 (ArcMap) 或运行 (ArcGIS Pro)。

PostgreSQL 中创建新用户和方案,而且为公共角色自动授予对方案的 USAGE 权限。

以新建用户连接

由于具有可以在新地理数据库中添加数据的用户,则可以该用户身份连接数据库。最简单的方法是修改先前创建的连接文件。

打开现有数据库连接,并更改用户名和密码。

  1. 右键单击数据库连接,然后单击连接属性
  2. 用户名密码值更改为新用户的值。
  3. 单击确定以新用户的身份进行连接。

接下来,您可以使用此连接向地理数据库中添加数据。