问题描述
以下是我的代码
df.write \
.format("com.databricks.spark.sqldw") \
.option("url","jdbc:sqlserver://**********.sql.azuresynapse.net:1433;database=********") \
.option("user","sqladminuser")\
.option("password","***********") \
.option("forwardSparkAzureStorageCredentials","true") \
.option("dbTable","dbo.testingoutfromdatabricks") \
.option("tableOptions","CLUSTERED COLUMNSTORE INDEX,disTRIBUTION = HASH (_c0)") \
.option("tempDir","abfss://********@**********.dfs.core.windows.net/tempfolder/") \
.save()
我收到以下错误。
无法验证外部位置,因为远程服务器返回错误:(403) Forbidden。 [错误代码 = 105215] [sqlState = S0001]
从 Azure 突触 sql 池,我使用来自同一个 blob 存储的 copY 命令,并成功加载表......有人遇到上述错误吗?
解决方法
要解决此问题,请确保在尝试访问受保护的 Azure 存储时必须使用托管服务标识。
将 Storage Blob Data Contributor
角色分配给 Azure Synapse Analytics 服务器的托管标识。
有关详细信息,请参阅 Write Data from Azure Databricks to Azure Dedicated SQL Pool(formerly SQL DW) using ADLS Gen 2。