使用 MSGraph 将 Sharepoint Excel 文件复制到 Azure 数据工厂

Copy Sharepoint Excel file with Azure Data Factory using MSGraph

我需要将 Sharepoint 上 Excel 文件的数据复制到 Azure SQL 数据库。这需要在 Azure 数据工厂中完成。我在下面找到了解决方案: https://docs.microsoft.com/en-gb/azure/data-factory/connector-sharepoint-online-list?tabs=data-factory#copy-file-from-sharepoint-online 虽然这似乎可行,但缺点是应用注册需要获得 Sharepoint 权限 'Sites.Read.All'。这就是为什么我一直在寻找使用 MS Graph 执行此操作的原因,因为 MS Graph 允许权限 'Sites.Selected'。这是一个重要的问题,因为我想避免授予访问整个 Sharepoint 的权限(最好我只授予访问一个文件夹的权限,但我根本没有找到这个解决方案)。但是,我没有找到在 ADF 中使用 MS Graph 执行此操作的任何方法。

有人知道如何做到这一点吗?使用 Azure Functions 或 Logic 应用程序的解决方案不在我们当前的体系结构中 possible/allowed。

提前致谢。

在您的情况下,如果您可以从您的工作流程中调用 MS Graph API,假设您已经注册了应用程序,则您需要使用 Create permission 为您的应用程序创建站点权限该站点的管理员用户。

POST https://graph.microsoft.com/v1.0/sites/Site-ID/permissions
{
    "roles": [
        "read"
    ],
    "grantedToIdentities": [
        {
            "application": {
                "id": "your-app-client-id",
                "displayName": "Test App"
            }
        }
    ]
}

然后将应用程序权限 Site.Selected 分配给您在 AAD 门户上的应用程序注册。这样,您的应用程序将只能访问该特定站点,而不能访问您租用范围内的所有站点

Inside copy activity 在源选项卡下你可以考虑使用 HTTP 连接器类型数据集或 REST 连接器类型数据集,这有助于你使用 MSGraph 进行 rest 调用 API.

有两种类型的上述连接器可以在 Azure 数据工厂中使用

  1. 使用 Azure 数据工厂或 Azure Synapse Analytics 从 HTTP 端点复制数据 | Docs
  2. 使用 Azure 数据工厂从 REST 端点复制和转换数据 | Docs