【问题标题】:Update Credentials for Import mode Datasources in Power BI via API通过 API 更新 Power BI 中导入模式数据源的凭据
【发布时间】:2018-10-05 03:46:51
【问题描述】:

我正在使用 PowerBI API 上传一些 pbix 文件。大多数这些文件都使用 SQL 的导入模式。

当我使用 REST API 上传文件时,凭据不会在网站上更新。我知道凭据不在实际文件中。我也知道有 API 可以使用 API 修补这些凭据,但我无法使其与导入模式一起使用。似乎只适用于DirectQuery

我也尝试过Set All connections,它被记录为仅适用于使用这种格式的直接查询连接:

Data Source=xxxx.mydb.net; Initial Catalog=dbname;User ID=xxx;Password=xxxx;

我现在的问题是 Power BI 管理缓存凭据的方式很难确定正在使用哪些凭据。有时会发生一些神奇的事情,更新一个文件会使使用相同凭据的其他文件也允许刷新。

这是我通过 API 上传的所有文件都遇到的错误。

由于至少一个数据源没有提供凭据,数据源错误计划刷新已被禁用。请提供所有数据源的凭据,然后重新开启计划刷新。

集群 This-is-not-relevant.net
活动 ID00000000-0000-0000-0000-000000000000
请求 ID00000000-0000-0000-0000-000000000000
时间2020-09-99 99:54:11Z

谢谢你,
切约

【问题讨论】:

    标签: powerbi powerbi-embedded powerbi-datasource


    【解决方案1】:

    这是使用 PowerBI Csharp SDK 的解决方案。确保 JSON 有效负载是属性转义的。

    var request = new UpdateDatasourceRequest
    {
        CredentialDetails = new CredentialDetails
        {
            Credentials = $"{{\"credentialData\":[{{\"name\":\"username\",\"value\":{JsonConvert.SerializeObject(credential.Username)}}},{{\"name\":\"password\",\"value\":{JsonConvert.SerializeObject(credential.Password)}}}]}}",
            CredentialType = "Basic",
            EncryptedConnection = "Encrypted",
            EncryptionAlgorithm = "None",
            PrivacyLevel = "None"
        }
    };
    
    await PowerBI.Client().Gateways.UpdateDatasourceAsync(gatewayId: datasource.GatewayId, datasource.DatasourceId, updateDatasourceRequest: request);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 2022-11-21
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多