首页 文章

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

提问于
浏览
1

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

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

我还尝试了Set All connections,它被记录为仅使用此格式的直接查询连接 . "Data Source=xxxx.mydb.net; Initial Catalog=dbname;User ID=xxx;Password=xxxx;"

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

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

Data source errorScheduled refresh has been disabled due to at least one data source not having credentials provided. Please provide credentials for all data sources, and then turn scheduled refresh back on.
Cluster This-is-not-relevant.net
Activity ID00000000-0000-0000-0000-000000000000
Request ID00000000-0000-0000-0000-000000000000
Time2020-09-99 99:54:11Z

谢谢,
Chéyo

1 回答

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

相关问题