Skip To Content

从 ArcGIS 连接到 PostgreSQL

以下列表汇总了从 ArcGIS 连接到 PostgreSQL 数据库(包括含企业级地理数据库的数据库)所需的步骤:

PostgreSQL 客户端文件已随 ArcGIS ProArcGIS Server 安装;您无需安装 PostgreSQL 客户端或设置用于访问客户端的环境变量。

配置数据库以允许连接

默认情况下,仅作为 PostgreSQL 数据库群集运行在相同计算机上的客户端可连接到客户端。 要允许远程客户端连接到数据库群集并控制他们可以访问的数据库,请更改 PostgreSQL pg_hba.conf 配置文件。 您放置在 pg_hba.conf 文件中的条目将会有所不同,具体取决于您站点的安全策略和配置。

有关说明,请参阅配置 PostgreSQL 数据库集群以接受 ArcGIS 连接

连接到数据库

可以在 ArcGIS Pro 中使用数据库连接对话框连接到数据库,如下所述。

或者,可以在 ArcGIS Pro 中运行创建数据库连接工具或通过 ArcGIS Server 计算机使用 Python 运行创建数据库连接命令,以创建可连接到数据库的数据库连接文件 (.sde)。

要将数据库连接文件与 ArcGIS Server 配合使用,必须将用户信息与连接文件一起保存。

如果选择使用操作系统身份验证,请确保 PostgreSQL 能够对 ArcGIS Server 账户进行身份验证。

提示:

确保用于连接的账户具有适当权限,可以访问数据库和账户需要访问的数据。 如果连接使用操作系统身份验证,并且您将使用此连接发布 web 服务,确保 ArcGIS Server 账户具有 web 服务中所含数据的必要权限。 有关详细信息,请参阅 PostgreSQL 中地理数据库的权限用于在 ArcGIS 中使用 PostgreSQL 数据库的权限

要在 ArcGIS Pro 中从数据库连接对话框连接到 PostgreSQL 数据库,请按照以下步骤进行操作:

“数据库连接”对话框

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

    以下是实例文本框中包含的信息示例:

    • 如果 PostgreSQL 数据库集群位于名为 ficus 的服务器上,请在实例文本框中输入 ficus
    • 如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),请将端口号包括在实例内。 例如,如果 PostgreSQL 安装在名为 mamabear 的服务器上,且监听端口 49200,请在实例文本框中输入 mamabear,49200
    • 要使用 IPV6 地址访问已安装 PostgreSQL 的服务器,请将输入的地址包含在括号内。 例如,如果服务器的 IPV6 地址是 1111:aa1:0:1:f111:a222:33f3:b4bb,请在实例文本框中输入 [1111:aa1:0:1:f111:a222:33f3:b4bb]
    • 对于 Amazon Aurora (PostgreSQL-compatible edition)Amazon RDS for PostgreSQL 实例,以 <database_instance_identifier>.<region_id>.rds.amazonaws.com 格式提供实例名称。 例如,如果在 us-east-1 Amazon Web Services 区域中使用标识符 mypgrdsdb 创建了实例,则在实例文本框中键入 mypgrdsdb.us-east-1.rds.amazonaws.com
    • 对于 Google Cloud SQL for PostgreSQL 实例,在实例文本框中键入实例的公共 IP 地址。
    • 对于 Microsoft Azure Cosmos DB for PostgreSQL 实例,连接字符串采用 c.<cluster_name>.postgres.database.azure.com 格式。 例如,如果您在创建集群时已将其命名为 allmydata,在实例文本框中输入 c.allmydata.postgres.database.azure.com
    • 对于 Microsoft Azure Database for PostgreSQL 实例,实例名称采用 <server_name>.postgres.database.azure.com 格式。 例如,如果您在创建服务器时已将其命名为 spatialdata,在实例文本框中输入 spatialdata.postgres.database.azure.com

    注:

    如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),则可将端口号包括在实例内。 例如,如果 PostgreSQL 安装在服务器 mamabear 上,且监听端口 49200,请在实例文本框中输入 mamabear,49200。 或者,提供端口号作为附加属性(请参阅以下步骤 8)。

  5. 选择连接到数据库时使用的身份验证类型:数据库身份验证操作系统身份验证
    • 如果您选择操作系统身份验证,则无需键入用户名和密码 - 将使用安全支持提供程序接口 (SSPI)、轻量级目录访问协议 (LDAP) 或者用于登录到操作系统的通用安全服务应用程序接口 (GSSAPI) 登录名和密码建立连接。 如果操作系统使用的登录信息未映射到有效的数据库登录信息,则连接将失败。
    • 如果选择数据库身份验证,则必须分别在用户名密码文本框中提供有效的用户名和密码。 用户名最多可以是 30 个字符。

      如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做有助于维护数据库的安全性。 但是,如果执行此操作,则系统会在每次连接时提示您提供用户名和密码。

    注:

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

  6. 输入或选择想要连接到的 PostgreSQL 数据库集群中的数据库的名称。
  7. 连接文件名称字段中键入连接文件的名称。

    当提供连接信息后,系统将创建一个默认名称。 您可以使用默认值,或者键入更具描述性的文件名。

    这是将显示在目录窗格和视图中的名称,也是存储在磁盘上的 .sde 文件的名称。

  8. 如果 PostgreSQL 数据库集群通过非默认端口进行通信,请展开附加属性部分,从属性下拉菜单中选择端口,然后在字段中键入端口。
  9. 单击验证以确认连接信息有效并且数据库可访问。

    如果数据库包含地理数据库并且连接有效,则地理数据库属性选项卡现在处于活动状态。 如有必要,您可以更改地理数据库连接属性以连接到传统版本,而非默认版本;将连接配置为分支版本连接或者连接到历史时刻

  10. 单击确定创建连接文件。

数据库连接将显示在目录窗格中的数据库下,同时将在 .sde 工程目录中创建连接文件 (ArcGIS Pro)。

将连接注册到 ArcGIS Enterprise

要允许 ArcGIS Server 站点访问数据,使用您创建的数据库连接文件在 ArcGIS Pro添加注册的数据存储在门户中添加数据存储项目

要使用操作系统身份验证注册连接,需要 ArcGIS Enterprise 11.1 或更高版本。 用于运行 ArcGIS ServerArcGIS Server 账户必须是映射到 PostgreSQL 中的登录角色的 SSPI 或 LDAP 登录。 该登录角色必须被授予访问要从地理数据库或 PostgreSQL 数据库发布的表的权限。