我正在使用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
答案 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);