本文列出了 Azure Synapse Analytics 中的专用 SQL 池(以前称为 SQL DW)的常见故障排除问题。
连接
问题 |
解决方法 |
用户 “NT AUTHORITY\ANONYMOUS LOGON” 登录失败。 (Microsoft SQL Server,错误:18456) |
当 Microsoft Entra 用户尝试连接到 master 数据库,但 master 中没有用户时,会发生此错误。 要更正此问题,请在连接时指定要连接到的专用 SQL 池(以前称为 SQL DW),或将用户添加到 master 数据库。 有关详细信息,请参阅安全概述。 |
服务器主体“MyUserName”无法在当前的安全性上下文下访问数据库 master 。 无法打开用户默认数据库。 登录失败。 用户“MyUserName”的登录失败。 (Microsoft SQL Server,错误:916) |
当 Microsoft Entra 用户尝试连接到 master 数据库,但 master 中没有用户时,会发生此错误。 要更正此问题,请在连接时指定要连接到的专用 SQL 池(以前称为 SQL DW),或将用户添加到 master 数据库。 有关详细信息,请参阅安全概述。 |
CTAIP 错误 |
当已在 master 数据库中创建登录名,但未在 SQL 数据库中创建时,可能会出现此错误。 如果遇到此错误,请参阅安全性概述一文。 本文介绍如何在 master 中创建登录名和用户,以及如何在 SQL 数据库中创建用户。 |
被防火墙阻止 |
专用 SQL 池(以前称为 SQL DW)由防火墙提供保护,确保只有已知 IP 地址可访问数据库。 默认情况下,防火墙是安全的,这意味着,需要显式启用单个 IP 地址或地址范围才能进行连接。 若要配置防火墙的访问权限,请遵循预配说明中的为客户端 IP 配置服务器防火墙访问权限中所述的步骤。 |
无法使用工具或驱动程序进行连接 |
专用 SQL 池(先前称为 SQL DW)建议使用 SQL Server Management Studio (SSMS)、用于 Visual Studio 的 SSDT 或 sqlcmd 查询数据。 有关驱动程序以及如何连接到 Azure Synapse 的详细信息,请参阅 Azure Synapse 驱动程序和连接到 Azure Synapse这两篇文章。 |
问题 |
解决方案 |
Visual Studio 对象资源管理器缺少 Microsoft Entra 用户 |
这是已知问题。 解决方法是在 sys.database_principals 中查看这些用户。 请参阅向 Azure Synapse 进行身份验证,详细了解如何将 Microsoft Entra ID 与专用 SQL 池(以前称为 SQL DW)配合使用。 |
使用脚本向导进行手动脚本编写或通过 SSMS 进行连接时出现缓慢、未响应或产生错误的情况 |
请确保已在 master 数据库中创建用户。 在脚本选项中,同时需确保引擎版本设置为“Microsoft Azure Synapse Analytics 版本”,且引擎类型为“Microsoft Azure SQL 数据库”。 |
在 SSMS 中生成脚本失败 |
如果将“为依赖对象生成脚本”选项设置为“True”,则为专用 SQL 池(以前称为 SQL DW)生成脚本会失败。解决方法是,用户必须手动转到“工具”->“选项”->“SQL Server 对象资源管理器”->“为依赖选项生成脚本”并设置为“False” |
数据引入和准备
问题 |
解决方法 |
使用 CETAS 导出空字符串会导致 Parquet 和 ORC 文件中出现 NULL 值。 请注意,如果从具有 NOT NULL 约束的列中导出空字符串,CETAS 会导致记录被拒绝,并且导出可能会失败。 |
删除 CETAS 的 SELECT 语句中的空字符串或有问题的列。 |
不支持将 0-127 范围外的值加载到 Parquet 和 ORC 文件格式的 tinyint 列中。 |
为目标列指定较大的数据类型。 |
Msg 105208,级别 16,状态 1,第 1 行 COPY 语句失败,在验证选项“FROM”的值时出现以下错误:“105200;COPY 语句失败,因为选项‘FROM’的值无效”。 |
目前,使用 COPY 命令将数据引入到使用新 DNS 分区功能的 Azure 存储帐户中会导致错误。 DNS 分区功能使客户能够为每个订阅创建最多 5000 个存储帐户。 若要解决此问题,请在订阅中预配存储帐户,该订阅不使用新的 Azure 存储 DNS 分区功能(当前为公共预览版)。 |
系统管理
与 SQL 数据库的差异