通过API更新Power BI中导入模式数据源的凭据

时间:2018-04-24 19:08:02

标签: powerbi powerbi-embedded powerbi-datasource

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

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

我还尝试了Set All connections,其中记录的仅适用于使用此格式的直接查询连接:

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

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

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

  

数据源errorScheduled refresh已被禁用,因为至少有一个数据源没有提供凭据。请提供所有数据源的凭据,然后重新打开计划刷新。

     

群集这个 - 不 - 相关网络   活动ID00000000-0000-0000-0000-000000000000
  请求ID00000000-0000-0000-0000-000000000000
  时间2020-09-99 99:54:11Z

谢谢你,
Chéyo

1 个答案:

答案 0 :(得分:0)

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

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);