以下列表汇总了从 ArcGIS 连接到 Microsoft SQL Server 数据库(包括含地理数据库的数据库)所需的步骤:
- 配置 SQL Server 实例,以允许从远程计算机连接。
- 在 ArcGIS 客户端计算机上安装 Microsoft ODBC 驱动程序。
- 创建数据库连接。
- 如需发布引用 SQL Server 数据库中数据的 ArcGIS Server web 服务,请将数据库连接文件注册到您的 ArcGIS Server 站点。
配置实例以允许连接
默认情况下,未将 SQL Server 实例配置为允许从其他计算机中连接。 如果您有新安装的 SQL Server,请确保该 SQL Server 服务正在运行并在监听正确的端口。 有关详细信息,请参阅 Microsoft SQL Server 文档。
如果您不是数据库管理员,在连接时如果收到提示实例不接受连接的错误,则请联系数据库管理员。
需要对 SQL Server 和客户端计算机进行其他配置才能使用加密连接。
安装 ODBC driver for SQL Server
从 Microsoft 下载中心或 My Esri 获取适用于 SQL Server 的 64 位 Microsoft ODBC 驱动程序。 确保获得的 Microsoft ODBC 驱动程序支持要连接的 SQL Server 版本。 在所有已安装 ArcGIS Pro 和 ArcGIS Server 的计算机上安装此驱动程序。
如果您没有在运行 ArcGIS 客户端的计算机上安装软件的权限,则需要请求 IT 部门为您安装和配置 Microsoft ODBC 驱动程序。
注:
如果 ArcGIS Server 和 SQL Server 安装在同一服务器上,则该计算机上不需要单独的 ODBC 驱动器。
在 Ubuntu 上从 ArcGIS Server 连接到受支持版本的 SQL Server 时,除了 ODBC 驱动程序之外,还必须在所有 ArcGIS Server 计算机上安装 Microsoft unixodbc-dev 包。
连接到数据库
您可以在 ArcGIS Pro 中使用数据库连接对话框连接到数据库,如下所述。
或者,您可以在 ArcGIS Pro 中运行创建数据库连接地理处理工具或通过 ArcGIS Server 计算机使用 Python 运行创建数据库连接命令,以创建可连接到数据库的数据库连接文件 (.sde)。
注:
如果连接将使用 Microsoft Azure Active Directory 身份验证,则无法使用创建数据库连接地理处理工具。
要将数据库连接文件用于 ArcGIS Server,需要以下条件:
- 您必须相应的 Microsoft Azure Active Directory 用户信息与连接文件一同保存,这些信息经过数据库身份验证并且需要密码。
注:
无法将使用 Azure Active Directory - Universal with MFA 的数据库连接注册到 ArcGIS Server 站点。
- 如果您使用操作系统身份验证 进行连接,请确保 SQL Server 能够对 ArcGIS Server 帐户进行身份验证。
提示:
确保用于连接的帐户具有适当权限,可以访问帐户需要访问的数据。 如果连接使用操作系统身份验证,并且您将使用此连接发布 web 服务,请确保 ArcGIS Server 帐户具有 web 服务中所含数据的适当权限。 有关详细信息,请参阅 SQL Server 中地理数据库的权限和用于在 ArcGIS 中使用 SQL Server 数据库的权限。
按照以下步骤在 ArcGIS Pro 中通过数据库连接对话框连接到 SQL Server 数据库:
- 在 ArcGIS Pro 中打开目录窗格。
- 右键单击数据库,然后单击新建数据库连接。
- 从数据库平台下拉列表中选择 SQL Server。
- 在实例文本框中键入 SQL Server 实例名称。
例如,如果使用默认的 SQL Server 实例,则可在实例文本框中指定实例名称或服务器的 IP 地址。 如果指定 IPV6 地址,则要用括号将地址括起来。 例如,如果服务器的 IPV6 地址是 2000:ab1:0:2:f333:c432:55f6:d7ee,请在数据源文本框中输入 [2000:ab1:0:2:f333:c432:55f6:d7ee]。
如果数据库监听的不是默认端口 (1433),请将端口号包括在实例内。 例如,如果 SQL Server 实例为 basset\spatial,且监听端口 61000,请在实例文本框中输入 basset\spatial,61000。
如果 Microsoft Azure SQL Database 或 Azure SQL Managed Instance 实例名称为 cloudy4u.database.windows.net,请在实例文本框中输入 cloudy4u.database.windows.net。 如果使用名为 terra\gis 的 SQL Server 实例,请在实例文本框中输入 terra\gis。 如果您的 Amazon Relational Database Service (RDS) for SQL Server 实例名称为 rdssqlserver.abc123 且它部署在 Amazon Web Services 区域 us-west-2 中,则请在实例文本框中键入 rdssqlserver.abc123.us-west-2.rds.amazonaws.com。
对于加密连接和高度可用的 SQL Server 数据库连接,需要在实例文本框中输入附加文本。
- 选择连接到数据库时要使用的身份验证类型。
仅当连接到 Azure SQL Database 或 Azure SQL Managed Instance 时,才支持 Azure Active Directory 选项。
- 操作系统身份验证 - 无需输入用户名和密码;系统会通过用于登录到操作系统的用户名和密码建立连接。 如果操作系统使用的登录信息不能用作数据库的登录信息,连接将失败。
数据库身份验证 - 必须分别在用户名和密码文本框中提供有效的数据库用户名和密码。 用户名最多可以是 30 个字符。
- Azure Active Directory - Universal with MFA - 必须提供Azure Active Directory 用户名,但不能提供密码。 在进行连接时,系统会通过短信、电子邮件或 MFA 设备向您发送代码,或者可以使用指纹扫描进行身份验证。 身份验证过程的第二部分将会有所不同,具体取决于您的网络和身份验证协议的配置方式。
- Azure Active Directory - 密码 - 必须分别在用户名和密码文本框中提供有效的 Azure Active Directory 用户名和密码。 用户名最多可以是 30 个字符。
注:
- 对于使用数据库身份验证或 Azure Active Directory 身份验证为 ArcGIS web 服务提供数据库访问的连接文件,或需要搜索 ArcGIS Pro 以找到通过此连接文件访问的数据,都必须选中保存用户名和密码。
- 在 ArcGIS 外部,您可以在 SQL Server 中创建包含特殊字符的用户名。 使用时,必须将这些用户名用分隔符分隔开来。 当用户名传递到 SQL Server 时,ArcGIS 会自动为其添加分隔符;您无需在用户名中添加分隔符。 例如,如果您的用户名是 map.user,则在用户名文本框中输入 map.user,而并非 "map.user"。 有关常规标识符和分隔标识符的详细信息,请参阅 SQL Server 文档。
- 在数据库文本框中,选择想要在 SQL Server 实例或 Azure SQL Managed Instance 上连接到的特定数据库的名称,或者,对于所有其他数据库服务,输入数据库的名称。
数据库名称限制为 31 个字符。
- 单击确定创建连接文件。
数据库连接将显示在目录窗格中的数据库下,同时将在 .sde 工程目录中创建连接文件 (ArcGIS Pro)。
可通过在目录窗格中输入新名称并按 Enter 键对文件进行重命名。
将数据库注册到 ArcGIS Server
要允许 ArcGIS Server 站点访问数据,使用您创建的数据库连接文件在 ArcGIS Pro 中添加注册的数据存储或在门户中添加数据存储项目。