将数据从 Azure Blob 存储导入 AzureSQL PaaS 的方法

Posted

技术标签:

【中文标题】将数据从 Azure Blob 存储导入 AzureSQL PaaS 的方法【英文标题】:Ways to import data into AzureSQL PaaS from Azure Blob Storage 【发布时间】:2020-11-13 08:50:23 【问题描述】:

全部,

我必须从 Azure Blob 存储 帐户将数据批量插入 AzureSQL。我知道一种方法是使用 SAS 密钥,但是否有更安全的方法从 T-SQL 加载数据?

例如,有没有办法使用用户AAD 帐户 连接到存储? 托管身份会起作用吗?我在 Internet 上没有遇到过使用非 SAS 密钥的示例。

戈皮

【问题讨论】:

【参考方案1】:

azure 数据工厂通常用于此目的。您可以构建一个管道,从 blob 中获取数据并将其按摩/加载到 sql 中,这是它的设计目的。但是,如果您不想使用它, 推荐的方式是 SAS,因为它可以是临时的并且可以随时撤销。为什么您认为 SAS 不那么安全?

根据文档:https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql?view=sql-server-ver15#credential--credential_name 如果您要创建具有 blob_storage 类型的外部数据源,则身份/凭据必须是 SAS,因为它不支持任何其他身份验证类型。因此,这意味着您不能对使用 tsql 的 blob 存储使用任何其他身份验证方法。

【讨论】:

因为很难根据 IP 地址进行限制(对于 AzureSQL)。由于凭据存储在数据库中,所以不知道在 Microsoft 创建备份时它可能会如何被滥用 如果您觉得这很可怕,您可以创建一个 azure keyvault 并将其与 azure sql tsql 脚本集成,那么 SAS 将不会“存储”在数据库中,而是可能会存储在 keyvault 中。 docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/…

以上是关于将数据从 Azure Blob 存储导入 AzureSQL PaaS 的方法的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Sqoop 将数据从 SQL Server 导入 Azure Blob 存储吗

从 Azure Excel blob 文件将数据导入 SQL Server

使用 React 在 Azure Blob 存储中上传文件

何时使用 Azure Blob 存储与 Azure 文件共享?

将 Azure Blob 与 Azure 网站结合使用

为 Azure Blob 存储批量更改层