ADF 无法连接到 Synapse Link SQL 池外部表
ADF Unable to connect to Synapse Link SQL Pool External Tables
我正在尝试创建一个 ADF Linked 服务连接到 Synapse Link 无服务器 SQL 池连接到 ADSL 存储。我可以成功建立连接,但是当我尝试使用数据集访问数据时,我遇到了权限问题。
我可以通过 Synapse studio 成功访问数据:
这是我在 ADF 中使用数据集时遇到的错误。
我还可以查看 SSMS 中的模式,它们在其中显示为外部表。但是在同一点得到类似的凭据错误。
有人遇到过这个问题吗?
您的问题中有几条信息没有提供,但我相信我知道发生了什么。外部 table 在 Synapse Studio 中工作,因为您使用 AAD 帐户连接到无服务器 SQL 池,它通过您的 AAD 凭据传递到数据湖并成功。
但是,当您将链接服务设置为无服务器 SQL 池时,我猜您使用了 SQL 身份验证帐户作为凭据。使用 SQL auth,它不知道如何使用数据湖进行身份验证,因此寻找服务器范围的凭证但找不到。
当您使用我猜的 SQL 授权帐户从 SSMS 连接时,同样发生了。
您有多种选择。如果能够使用 SQL auth 访问外部 table 很重要,您可以执行以下命令来告诉它如何访问数据湖。这假定 Synapse Workspace 托管服务身份在数据湖上具有存储 Blob 数据 Reader 或存储 Blob 数据贡献者角色。
CREATE CREDENTIAL [https://<YourDataLakeName>.dfs.core.windows.net]
WITH IDENTITY = 'Managed Identity';
或者您可以更改链接服务的身份验证以使用托管服务标识。
我正在尝试创建一个 ADF Linked 服务连接到 Synapse Link 无服务器 SQL 池连接到 ADSL 存储。我可以成功建立连接,但是当我尝试使用数据集访问数据时,我遇到了权限问题。
我可以通过 Synapse studio 成功访问数据:
这是我在 ADF 中使用数据集时遇到的错误。
我还可以查看 SSMS 中的模式,它们在其中显示为外部表。但是在同一点得到类似的凭据错误。
有人遇到过这个问题吗?
您的问题中有几条信息没有提供,但我相信我知道发生了什么。外部 table 在 Synapse Studio 中工作,因为您使用 AAD 帐户连接到无服务器 SQL 池,它通过您的 AAD 凭据传递到数据湖并成功。
但是,当您将链接服务设置为无服务器 SQL 池时,我猜您使用了 SQL 身份验证帐户作为凭据。使用 SQL auth,它不知道如何使用数据湖进行身份验证,因此寻找服务器范围的凭证但找不到。
当您使用我猜的 SQL 授权帐户从 SSMS 连接时,同样发生了。
您有多种选择。如果能够使用 SQL auth 访问外部 table 很重要,您可以执行以下命令来告诉它如何访问数据湖。这假定 Synapse Workspace 托管服务身份在数据湖上具有存储 Blob 数据 Reader 或存储 Blob 数据贡献者角色。
CREATE CREDENTIAL [https://<YourDataLakeName>.dfs.core.windows.net]
WITH IDENTITY = 'Managed Identity';
或者您可以更改链接服务的身份验证以使用托管服务标识。