从 ArcGIS 连接到 PostgreSQL

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

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

连接到数据库

可以在 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. 单击确定创建连接文件。

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

将连接注册到 ArcGIS Enterprise

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

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