从 ArcGIS 连接到 Microsoft SQL Server

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

配置实例以允许连接

默认情况下,未将 SQL Server 实例配置为允许从其他计算机中连接。 如果您有新安装的 SQL Server,请确保该 SQL Server 服务正在运行并在监听正确的端口。 有关详细信息,请参阅 Microsoft SQL Server 文档。

如果您不是数据库管理员,在连接时如果收到提示实例不接受连接的错误,则请联系数据库管理员。

需要对 SQL Server 和客户端计算机进行其他配置才能使用加密连接。

安装 ODBC driver for SQL Server

从 Microsoft 下载中心或 SQL Server 获取适用于 Microsoft 的 64 位 My Esri ODBC 驱动程序。 必须使用要连接的版本 Microsoft 支持的 SQL Server ODBC 驱动程序。 在所有已安装 ArcGIS AllSource 和 ArcGIS Server 的计算机上安装此驱动程序。

如果您没有在运行 ArcGIS 客户端的计算机上安装软件的权限,则需要请求 IT 部门为您安装和配置 Microsoft ODBC 驱动程序。

注:

如果 ArcGIS Server 和 SQL Server 安装在同一服务器上,则该计算机上不需要单独的 ODBC 驱动器。

在 ArcGIS Server 上从 Ubuntu 连接到受支持版本的 SQL Server 时,除了 ODBC 驱动程序之外,还必须在所有 Microsoft 计算机上安装 unixodbc-dev ArcGIS Server 包。

连接到数据库

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

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

要将数据库连接文件用于 ArcGIS Server,需要以下条件:

  • 您必须相应的 Entra ID 用户信息与连接文件一同保存,这些信息经过数据库身份验证并且需要密码。

    注:

    无法将使用 Microsoft Entra multifactor authentication (MFA) 的数据库连接注册到 ArcGIS Server 站点。

  • 如果您使用操作系统身份验证或 Entra Integrated 身份验证进行连接,则请确保 SQL Server 或 Azure SQL Database 能够对 ArcGIS Server 帐户进行身份验证。

提示:

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

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

“数据库连接”对话框

  1. 在 ArcGIS AllSource 中打开目录窗格。
  2. 右键单击数据库,然后单击新建数据库连接。
  3. 从数据库平台下拉列表中选择 SQL Server。
  4. 在实例文本框中键入 SQL Server 实例名称。

    示例包括以下内容:

    • 对于 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]。
    • 如果 SQL Server 数据库正在监听的不是默认端口 (1433),则可以将端口号包含在实例内。 例如,如果 SQL Server 实例名为 basset\spatial,且正在监听端口 61000,请在实例文本框中输入 basset\spatial,61000。 或者,可以使用端口属性提供端口号。 (请参阅以下步骤 8。)
    • 对于 Amazon RDS for SQL Server 实例,实例将采用 <database_instance_identifier>.<region_id>.rds.amazonaws.com 格式。
    • 对于 Google Cloud SQL for SQL Server 实例,在实例文本框中键入实例的公共 IP 地址。
    • 对于 Microsoft Azure SQL Managed Instance 或 Microsoft Azure SQL Database 实例,在实例文本框中提供服务器名称。 例如,如果服务器名称为 cloudy4u.dbid123.database.windows.net,则在实例文本框中键入 cloudy4u.dbid123.database.windows.net。

    如果 SQL Server 实例使用故障转移集群,可以向实例字符串添加条件以利用冗余实例。

    可以将附加条件追加到实例名称以请求加密连接到 SQL Server 实例。

  5. 选择连接到数据库时要使用的身份验证类型。

    仅当连接到 Microsoft Entra ID 或 Azure SQL Database 时,才支持 Azure SQL Managed Instance 选项。

    • 操作系统身份验证 - 无需输入用户名和密码;系统会通过用于登录到操作系统的用户名和密码建立连接。 如果操作系统使用的登录信息不能用作数据库的登录信息,连接将失败。
    • 数据库身份验证 - 必须分别在用户名和密码文本框中提供有效的数据库用户名和密码。 用户名最多可以是 30 个字符。

    • Microsoft Entra MFA - 必须提供 Entra ID 用户名,但不能提供密码。 在进行连接时,系统会通过短信、电子邮件或 MFA 设备向您发送代码,或者可以使用指纹扫描进行身份验证。 身份验证过程的第二部分将会有所不同,具体取决于您的网络和身份验证协议的配置方式。

      无法将使用 Microsoft Entra MFA 的数据库连接注册到 ArcGIS Server 站点。

    • Microsoft Entra 密码 - 必须分别在用户名和密码文本框中提供有效的 Entra ID 用户名和密码。 用户名最多可以是 30 个字符。
    • Microsoft Entra 整合式 - 无需输入用户名和密码;系统会通过用于登录到操作系统的用户名和密码建立连接。 如果针对该操作系统使用的登录帐户不是有效的 Entra ID 登录帐户,则连接将失败。
    注:

    • 对于使用数据库身份验证或 Entra Password 身份验证为 ArcGIS web 服务提供数据库访问的连接文件,或需要搜索 ArcGIS AllSource 以找到通过此连接文件访问的数据,都必须选中保存用户名和密码。
    • 在 ArcGIS 外部,您可以在 SQL Server 中创建包含特殊字符的用户名。 使用时,必须将这些用户名用分隔符分隔开来。 当用户名传递到 SQL Server 时,ArcGIS 会自动为其添加分隔符;您无需在用户名中添加分隔符。 例如,如果您的用户名是 map.user,则在用户名文本框中输入 map.user,而并非 "map.user"。 有关常规标识符和分隔标识符的详细信息,请参阅 SQL Server 文档。

  6. 在数据库文本框中,选择想要在 SQL Server 实例或 Azure SQL Managed Instance 上连接到的数据库的名称,或者,对于所有其他数据库服务,键入数据库的名称。

    数据库名称限制为 31 个字符。

  7. 在连接文件名称字段中键入连接文件的名称。

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

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

  8. 或者,展开其他属性部分并指定要连接的参数(除了之前步骤中所需参数之外)。
    • 端口 - 如果 SQL Server 实例通过非默认端口进行通信,请从属性下拉菜单中选择此参数,然后在值字段中键入正确的端口。
    • 加密 - 在连接上启用 SSL 加密。 受支持的值为 Yes 或 No。
    • TrustServerCertificate - 无需客户端证书即可进行加密。 受支持的值为 Yes 或 No。
    • ApplicationIntent - 如果用户连接到 AlwaysOn 可用性组侦听器并且已配置只读路由,则将支持只读路由。 受支持的值为 READONLY 或 READWRITE。
    • MultisubnetFailover - 为 SQL Server 中的所有可用性组和故障转移集群实例实现更快的故障转移,并将显著减少单子网和多子网 Always On 拓扑的故障转移时间。 受支持的值为 Yes 或 No。
  9. 单击验证以确认连接信息有效并且数据库可访问。

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

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

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

将数据库注册到 ArcGIS Server

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