Skip To Content

从 ArcGIS 连接到 PostgreSQL

要从 ArcGIS 客户端连接到 PostgreSQL,请确保已将 PostgreSQL 配置为接受来自 ArcGIS 客户端计算机的连接,并确保 ArcGIS 可以使用数据库名称,然后您可在 ArcGIS ProArcMap 中创建一个数据库连接。

如需发布引用 PostgreSQL 数据库中数据的 ArcGIS Server web 服务,请将数据库连接文件注册到您的 ArcGIS Server 站点。

ArcGIS Pro 进行连接

PostgreSQL 客户端文件随 ArcGIS Pro 一同安装。 要从 ArcGIS Pro 工程连接到 PostgreSQL 数据库,请将数据库配置为接受连接并创建数据库连接。

配置数据库以允许连接

更改 PostgreSQL pg_hba.conf 文件并确保必要的登录角色或组角色在数据库中具有 CONNECT 权限。

  1. 在数据库服务器上更改 PostgreSQL pg_hba.conf 文件使之接受来自 ArcGIS 客户端计算机的连接。
  2. 重新启动 PostgreSQL 或通过运行 pg_ctl reload 强制 postmaster 重新加载 pg_hba.conf 文件。
  3. 请确保用户拥有连接到数据库集群的权限。

    默认情况下,“公共”角色具有 PostgreSQL 数据库集群的 CONNECT 权限;因此,如果撤消了“公共”角色的 CONNECT 权限,仅需要为各个登录角色或组角色授予 CONNECT 权限。

连接到数据库

使用数据库连接对话框或创建数据库连接工具来添加数据库连接。 以下步骤介绍了如何使用数据库连接对话框。

  1. 右键单击目录窗格中的数据库,然后单击新建数据库连接
  2. 数据库平台下拉列表中选择 PostgreSQL
  3. 数据源文本框中,输入安装 PostgreSQL 的服务器的数据库集群名称或 IP 地址。

    例如,如果 PostgreSQL 数据库集群名为 ficus,请在数据源文本框中输入 ficus。 如果指定 IPV6 地址,则要用括号将地址括起来。 例如,如果服务器的 IPV6 地址是 1111:aa1:0:1:f111:a222:33f3:b4bb,请在数据源文本框中输入 [1111:aa1:0:1:f111:a222:33f3:b4bb]

    注:

    如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),请将端口号包括在实例内。 例如,如果 PostgreSQL 安装在服务器 mamabear 上,且监听端口 49200,请在数据源文本框中键入 mamabear,49200

  4. 身份验证类型中选择数据库身份验证
  5. 用户名密码文本框中分别输入有效的数据库用户名和密码。
  6. 如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。 但是,如果执行此操作,则系统会在每次连接时提示您提供用户名和密码。

    注:

    对于为 ArcGIS web 服务提供数据库访问权限的连接文件,或希望使用搜索 ArcGIS Pro 找到通过此连接文件访问的数据,都必须选中保存用户名和密码

  7. 输入或选择想要连接到的 PostgreSQL 数据库集群中的数据库的名称。
  8. 单击确定进行连接。

ArcMap 进行连接

PostgreSQL 客户端文件随 ArcGIS Desktop 一同安装。 要从 ArcMap 进行连接,请将数据库配置为接受连接,然后在 ArcMapArcCatalog 中创建来自目录树的连接。

配置数据库以允许连接

更改 PostgreSQL pg_hba.conf 文件并确保必要的登录角色或组角色在数据库中具有 CONNECT 权限。

  1. 在数据库服务器上更改 PostgreSQL pg_hba.conf 文件使之接受来自 ArcGIS 客户端计算机的连接。
  2. 重新启动 PostgreSQL 或通过运行 pg_ctl reload 强制 postmaster 重新加载 pg_hba.conf 文件。
  3. 请确保用户拥有连接到数据库集群的权限。

    默认情况下,“公共”角色具有 PostgreSQL 数据库集群的 CONNECT 权限;因此,如果撤消了“公共”角色的 CONNECT 权限,仅需要为各个登录角色或组角色授予 CONNECT 权限。

连接到数据库

您可以通过在 ArcMapArcCatalog 中目录树内的数据库连接节点下添加数据库连接的方式连接到 PostgreSQL 中的数据库或地理数据库。

  1. ArcMapArcCatalog 的目录树中,展开数据库连接,然后双击添加数据库连接
  2. 数据库平台下拉列表中选择 PostgreSQL
  3. 实例文本框中,输入安装 PostgreSQL 的服务器的数据库集群名称或 IP 地址。

    例如,如果 PostgreSQL 数据库集群名为 ficus,请在实例文本框中输入 ficus。 如果指定 IPV6 地址,则要用括号将地址括起来。 例如,如果服务器的 IPV6 地址是 1111:aa1:0:1:f111:a222:33f3:b4bb,请在实例文本框中输入 [1111:aa1:0:1:f111:a222:33f3:b4bb]

    注:

    如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),请将端口号包括在实例内。 例如,如果 PostgreSQL 安装在服务器 mamabear 上,且监听端口 49200,请在实例文本框中输入 mamabear,49200

  4. 使用数据库身份验证进行连接。
  5. 提供用于连接的登录角色名称和密码。
  6. 如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。 但是,如果执行此操作,则系统会在每次从桌面客户端连接时提示您提供用户名和密码。

    注:

    对于为 ArcGIS web 服务提供数据库访问权限的连接文件,或希望使用搜索 ArcGIS Desktop 找到通过此连接文件访问的数据,都必须选中保存用户名和密码

  7. 输入或选择想要连接到的 PostgreSQL 数据库集群中的数据库的名称。

    在以下示例中,user1 正在连接到 tundra PostgreSQL 数据库集群上的数据库 floe

    连接到 PostgreSQL 数据库的示例

  8. 单击确定进行连接。

文件的创建位置为 \\<computer_name>\Users\<user_name>\AppData\Roaming\ESRI\Desktop<release#>\ArcCatalog

可以将连接移动到另一位置;只需确保需要建立连接的用户和应用程序有权读取放置连接文件的目录。

如果需要将此连接文件中的数据用作服务(如地理处理和地理编码服务)源,则可能需要将连接文件置于网络上的某个共享位置。有关共享连接文件的详细信息,请参阅使数据可供 ArcGIS Server 访问

ArcGIS Server 进行连接

ArcGIS Server 包括 PostgreSQL 客户端文件;因此,您无需下载和复制 PostgreSQL 客户端文件即可进行连接。

从其他客户端进行连接时,请确保更改 PostgreSQL pg_hba.conf 文件并确保必要登录角色或组角色具有数据库的 CONNECT 权限

如果希望发布到 ArcGIS Server 的服务使用 PostgreSQL 中数据库或地理数据库的数据,则请将数据库注册到您的 ArcGIS Server 站点。 有关说明,请参阅 ArcGIS Pro 帮助中的管理注册的数据存储ArcGIS Enterprise 门户用户帮助中的使用 Server Manager 将数据注册到 ArcGIS Server添加项目