Azure Synapse - 无法创建外部表错误 401 未经授权

问题描述

我有一个服务主体,我正在尝试使用它为 Azure 数据湖 gen1 创建外部表。外部表创建失败并显示错误

Error occurred while accessing HDFS: Java exception raised on call to HdfsBridge_IsDirExist. 
Java exception message:
HdfsBridge::isDirExist - Unexpected error encountered checking whether directory exists or not:
IOException: Server returned HTTP response code: 401

据我所知,这是未经授权的错误。但是我检查了这个服务原则在 Azure Data Lake Gen1 存储中是否有正确的角色分配。还有什么可能导致这里出现未经授权的问题?我在其中创建外部表的 sql 突触实例是否也需要访问 ADLS Gen1?

请注意 sql Synapse 实例和 ADLS Gen1 实例在不同的资源组中。

解决方法

刚刚检查了我用来创建数据库范围凭据的服务原则,它的秘密已根据某个定期计划过期。更新密钥并使用更新后的值有助于解决问题。