用户可以从 ArcGIS 连接到数据库以查看、查询和分析其中包含的数据。您访问的某些数据库可包含地理数据库表、函数和过程,但这不是必须的;您能够从 ArcMap 连接到支持的数据库并查看数据。
大多数类型的数据库要求在将要连接到数据库的计算机上安装和配置数据库客户端。
对于除 SQLite 之外所有支持的数据库,请连接到“目录”树中数据库连接下的数据库。进行此操作时,会在客户端计算机上创建一个文件,其中包含您所提供的数据库连接信息。文件的默认位置是 \\<computer_name>\Users\<user_name>\AppData\Roaming\ESRI\Desktop<release#>\ArcCatalog,但您可以将连接文件移动到另一位置。只需确保需要建立连接的用户和应用程序有权读取放置连接文件的目录。
如果需要将此连接文件中的数据用作服务(如地理处理和地理编码服务)源,则可能需要将连接文件置于网络上的某个共享位置。有关共享连接文件的详细信息,请参阅使数据可供 ArcGIS Server 访问。
当您连接到数据库时,请选择将要连接的数据库类型,然后提供相关信息以帮助 ArcGIS 定位数据库,并提供身份验证信息以登录到数据库。
数据库平台和属性
从数据库平台下拉列表中选择的值表示要连接的数据库的类型。因此,对话框中的可用字段和您提供的用于建立连接的信息取决于您选择的数据库平台类型。
以下几部分介绍在什么情况下选择各个数据库平台以及建立连接需要额外提供哪些信息,并提供到数据库特定主题的链接:
Altibase
Dameng
从数据库平台下拉列表中选择 Dameng 以连接 Dameng 数据库。
连接到 Dameng 时,请在数据源文本框中提供 Dameng 安装所在服务器的名称。
使用数据库身份验证并提供有效的用户名和密码进行连接。不支持操作系统身份验证。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Dameng。
Db2
从数据库平台下拉列表中选择 DB2,以连接到 Linux、UNIX 或 Windows 服务器上的 IBM Db2 数据库,或直接连接到 Linux、UNIX 或 Windows 服务器上的 Db2 数据库中的地理数据库。
连接到 Db2 时,必须在数据源文本框中提供已编目的 Db2 数据库名称。或者,如果数据库未编目,则可改用以下语法进行连接:
HostName = <主机>;Port = <端口号>;Database = <数据库名称>;
指定适合站点的信息。例如,如果 Db2 数据库位于服务器 cube 上,通过 DBMS 端口 50000 进行通信,并且数据库名称是 spdata,则连接字符串如下所示:
HostName=cube;Port=50000;Database=spdata;
此类连接字符串称为非 DSN 连接。
要完成连接,请选择您将用于登录数据库的身份验证类型,并根据需要提供凭据。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Db2。
Db2 for z/OS
从数据库平台下拉列表中选择 DB2 for z/OS,以连接到 z 操作系统 (z/OS) 上的 Db2 数据库子系统,或连接到 z/OS 上的 Db2 数据库子系统中的地理数据库。
连接到 Db2 for z/OS 数据库子系统时,必须在数据源文本框中提供编入目录的 Db2 数据库子系统名称。
如果数据库子系统未编入目录,则可以使用连接字符串进行连接,如上一部分有关 Db2 的说明。
要完成连接,请选择您将用于登录数据库的身份验证类型,并根据需要提供凭据。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Db2。
Informix
从数据库平台下拉列表中选择 Informix,以连接到 IBM Informix 数据库,或直接连接到 Informix 数据库中的地理数据库。
连接到 Informix 时,必须在数据源文本框中提供 Informix 数据库的开放式数据库连通性 (ODBC) 数据源名称。
如果您没有配置 ODBC 数据源名称,则可改用以下语法进行连接:
HostName = <安装 Informix 的服务器>;ServerName = <Informix 服务器>;ServiceName = <服务文件中定义的服务名称>;Database = <Informix 数据库名称>
指定适合站点的信息。例如,如果 Informix 实例位于服务器 hirise 上,实例名称是 superids,它通过端口 54321 进行通信,并且数据库名称是 gisdata,则连接字符串如下所示:
HostName=hirise;ServerName=superids;ServiceName=54321;Database=gisdata
此类连接字符串称为非 DSN 连接。
要完成连接,请选择您将用于登录数据库的身份验证类型,并根据需要提供凭据。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Informix。
Netezza
从数据库平台下拉列表选择 Netezza,以连接到 Netezza 数据仓库设备中的数据库。
连接到 Netezza 数据库时,必须在数据源文本框中提供 Netezza 数据库的 ODBC 数据源名称。
如果您没有配置 ODBC 数据源名称,则可改用以下语法进行连接:
ServerName = <主机>;Port = <端口号>;Database = <数据库名称>
指定适合站点的信息。例如,如果 Netezza 数据仓库设备位于服务器 ndwa 上,通过端口 5480 进行通信,并且数据库名称是 spatial,则连接字符串如下所示:
ServerName=ndwa;Port=5480;Database=spatial
使用数据库身份验证并提供有效的用户名和密码进行连接。不支持操作系统身份验证。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Netezza。
Oracle
从数据库平台下拉列表中选择 Oracle,以连接到 Oracle 数据库,或直接连接到 Oracle 数据库中的地理数据库。
连接到 Oracle 时,在实例文本框中键入 Oracle TNS 名称,或提供以下一种 Oracle Easy Connect 字符串:
- Oracle 服务器名称/Oracle 服务名称或 ID
例如,如果 Oracle 安装在 myserver 上,Oracle 服务名称是 myosvc,则输入以下信息:
myserver/myosvc
- Oracle 服务器名称:Oracle 端口号/Oracle 服务名称或 ID
在本例中,Oracle 安装在 myserver 上,监听端口为 60000,Oracle 服务名称为 myoservice。
myserver:60000/myoservice - Oracle 服务器的 URL
上一示例中同一个实例的 URL 如下:
//myserver:60000/myoservice - Oracle 服务器的名称(如果服务器上的 Oracle 监听器配置为指向默认实例,则您可以使用此名称)。
- Oracle 服务器 IP 地址/Oracle 服务名称或 ID
例如,如果服务器地址是 10:10:10:10,Oracle 服务名称是 orasvc,则输入 10:10:10:10/orasvc。
对于 IPV6 地址,用括号将地址括起来。例如:[4000:vu5:0:0:f666:h191:77f5:i2rs]/orasvc。
- Oracle 服务器 IP 地址:Oracle 端口号/Oracle 服务名称或 ID
在本例中,IP 地址是 10:20:30:40,端口是 59999,Oracle 服务是 myomy1:10:20:30:40:59999/myomy1。
相同端口和服务的 IPV6 地址如下所示:[6543:eo4:0:1:f587:l249:12f9:w3ud]:59999/myomy110:20:30:40:59999/myomy1。
请确保 Oracle 实例已配置为允许使用 Easy Connect。如果已安装完整的 Oracle 客户端,但想使用 Easy Connect 语法进行连接,请确保客户端上的 sqlnet.ora 文件已组态为允许使用 Easy Connect,且 Oracle 服务器已组态为允许 Easy Connect 语法。还需要注意的是,如果 Oracle 实例并非监听默认的 Oracle 端口号,则必须使用包括端口号的连接语法。
要完成连接,请选择您将用于登录数据库的身份验证类型,并根据需要提供凭据。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Oracle。
PostgreSQL
从数据库平台下拉列表选择 PostgreSQL,以连接到 PostgreSQL 数据库、Microsoft Azure Database for PostgreSQL,或任一个数据库中的地理数据库。
连接到 PostgreSQL 时,必须指定实例和数据库。
对于 PostgreSQL 数据库和 PostgreSQL 中的地理数据库,该实例是安装了 PostgreSQL 的服务器的名称或 IP 地址。例如,如果 PostgreSQL 数据库集群位于服务器 ficus,请在实例文本框中输入 ficus。如果指定 IPV6 地址,则要用括号将地址括起来。例如,如果服务器的 IPV6 地址是 1111:aa1:0:1:f111:a222:33f3:b4bb,请在实例文本框中输入 [1111:aa1:0:1:f111:a222:33f3:b4bb]。
对于 Microsoft Azure Database for PostgreSQL 或此数据库中的地理数据库,请指定 Azure 实例的 URL,例如 pgazure.postgres.database.azure.com。
如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),请将端口号包括在实例内。例如,如果 PostgreSQL 安装在服务器 mamabear 上,且监听端口 49200,请在实例文本框中输入 mamabear,49200。
数据库是想要连接到的 PostgreSQL 数据库集群中特定数据库的名称。用户可以在数据库文本框中输入数据库名称,也可以从下拉列表中选择数据库。数据库名称最多包含 31 个字符。
使用数据库身份验证并提供有效的用户名和密码进行连接。连接到 Microsoft Azure Database for PostgreSQL 时,用户名必须包含 at 符号 (@) 和实例。例如,对于 Azure 实例 pgazure.postgres.database.azure.com 中的用户 editor1,输入 editor1@pgazure 作为用户名。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 PostgreSQL。
SAP HANA
在数据库平台下拉列表中选择 SAP HANA 以连接 SAP HANA 数据库。
在数据源文本框中指定 ODBC 数据源名称。
使用数据库身份验证并提供有效的用户名和密码进行连接。不支持操作系统身份验证。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 SAP HANA。
SQL Server
在数据库平台下拉列表中选择 SQL Server 以连接 Microsoft SQL Server 或 Microsoft Azure SQL Database。
连接到 SQL Server 或 Azure SQL Database 时,必须指定实例和数据库。
该实例为 SQL Server 或 Azure SQL Database 实例的名称。例如,如果您的 Azure SQL Database 实例名称为 cloudy4u.database.
.net,请在实例文本框中输入 cloudy4u.database.windows.net。如果使用 SQL Server 命名的 terra\gis 实例,在实例文本框中输入 terra\gis。
如果使用默认的 SQL Server 实例,则可在实例文本框中指定实例名称或服务器的 IP 地址。如果指定 IPV6 地址,则要用括号将地址括起来。例如,如果服务器的 IPV6 地址是 2000:ab1:0:2:f333:c432:55f6:d7zz,请在实例文本框输入 [2000:ab1:0:2:f333:c432:55f6:d7zz]。
如果数据库监听的不是默认端口 (1433),请将端口号包括在实例内。例如,如果 SQL Server 实例为 basset\spatial,且监听端口 61000,请在实例文本框中输入 basset\spatial,61000。
数据库是想要连接到的 SQL Server 或 Azure SQL Database 实例中特定数据库的名称。用户可以在数据库文本框中输入数据库名称(如果使用 SQL Server),也可以从下拉列表中选择数据库名称。数据库名称最多包含 31 个字符。
连接到 SQL Server 实例时,数据库名称为可选项,但只有在您想要连接到的数据库已指定为 SQL Server 实例中的默认数据库时才不提供数据库名称。连接到 Azure SQL Database 时,数据库名称为必填项。
要完成到 SQL Server 数据库的连接,请选择您用于登录数据库的身份验证类型,如有必要,请提供凭据。
如果您正在连接至 Azure SQL Database,请使用数据库身份验证并提供有效的用户名和密码进行连接。连接到 Azure SQL Database 时,不支持操作系统认证。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 SQL Server。
Teradata
从数据库平台下拉列表中选择 Teradata 以连接 Teradata 数据库。
连接到 Teradata 时,请在数据源文本框中提供 ODBC 数据源名称。如果尚未配置 ODBC 数据源名称,则可以 dbcName=<IP address> 的格式来提供 Teradata 服务器的 IP 地址。例如,如果服务器的 IPV4 地址为 200.30.200.10,则键入 dbcName=200.30.200.10。如果服务器具有 IPV6 地址,则要用括号将地址括起来。例如,如果服务器的 IPV6 地址为 3020:12z3:y4xw:5099:0:v678:u111:ts22,则键入 dbcName=[3020:12z3:y4xw:5099:0:v678:u111:ts22]。
使用数据库身份验证并提供有效的用户名和密码。不支持操作系统身份验证。
有关从不同 ArcGIS 客户端连接的指定说明,请参阅从 ArcGIS 连接至 Teradata。
身份验证类型
有两个登录选项可用于创建与数据库或企业级地理数据库的连接:数据库身份验证和操作系统身份验证。注意,并非所有数据库均支持使用操作系统身份验证。
数据库身份验证
如果选择数据库身份验证,则必须分别在用户名和密码文本框中提供有效的数据库用户名和密码。用户名最长为 30 个字符。
如上所述,您必须使用数据库身份验证连接至 Altibase、Azure SQL Database、Dameng、PostgreSQL、Netezza、SAP HANA 或 Teradata 数据库。
如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。但是,如果执行此操作,则系统会在每次连接时提示您提供用户名和密码。另请注意,对于为 ArcGIS 服务提供数据库或地理数据库访问的连接文件,或希望使用目录搜索找到通过此连接文件访问的数据,都必须选中保存用户名和密码。
操作系统身份验证
如果选择操作系统身份验证,则不需要输入用户名和密码,系统会通过用于登录到操作系统的用户名和密码建立连接。如果操作系统使用的登录信息不能用作数据库的登录信息,连接将失败。某些数据库管理系统不支持操作系统身份验证。