Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
timlin
Frequent Visitor

Programmatically enter missing dataset credentials using API

Hi,

 

I am leveraging the REST API's to invoke a Dataset Takeover and Update Parameters method, however as the new owner is different to the original/publishing owner the dataset requires updated credentials before it can be refreshed. Currently I have to manually enter the missing credentials to enable a refresh.

 

Data source error:It looks like scheduled refresh failed because at least one data source is missing credentials. To start the refresh again, go to this dataset's settings page and enter credentials for all data sources.
Cluster URI:WABI-NORTH-EUROPE-redirect.analysis.windows.net
Activity ID:00000000-0000-0000-0000-000000000000
Request ID:e9498bc8-a818-4d27-9b35-06a4b0e94582
Time:2019-12-17 13:58:44Z

 

My objective is to programatically script all these steps avoiding manual steps. The dataset does not use any gateways and only contains a single Azure SQL Database datasource. Is this feasible with current version of API's?

 

Many Thanks,

 

Tim.

2 ACCEPTED SOLUTIONS
Jayendran
Solution Sage
Solution Sage

Hi @timlin 

 

You can use my Powershell script to update the data source credentials. This powershell script is internally calling PowerBI REST API's

 

You can read the full article here

 

## Take Over DataSet

Invoke-PowerBIRestMethod -Url "groups/$($workspace.id)/datasets/$($datasetid)/Default.TakeOver" -Method Post

## update data source credentials

$BounGateway=Invoke-PowerBIRestMethod -Url "groups/$($workspace.id)/datasets/$($datasetid)/Default.GetBoundGatewayDataSources" -Method GET | ConvertFrom-Json


$UpdateUserCredential = @{
            credentialType ="Basic"
            basicCredentials = @{            
            username= $username
            password= "$(credentialpassword)"
            }
} | ConvertTo-Json



Invoke-PowerBIRestMethod -Url "gateways/$($BounGateway.value.gatewayId)/datasources/$($BounGateway.value.id)" -Method PATCH -Body $UpdateUserCredential | ConvertFrom-Json

 

Download the full source code from here

View solution in original post

Hi @timlin ,

 

Yes using SPN is feasable, infact if you read my article I've used SPN for the same

View solution in original post

4 REPLIES 4
Jayendran
Solution Sage
Solution Sage

Hi @timlin 

 

You can use my Powershell script to update the data source credentials. This powershell script is internally calling PowerBI REST API's

 

You can read the full article here

 

## Take Over DataSet

Invoke-PowerBIRestMethod -Url "groups/$($workspace.id)/datasets/$($datasetid)/Default.TakeOver" -Method Post

## update data source credentials

$BounGateway=Invoke-PowerBIRestMethod -Url "groups/$($workspace.id)/datasets/$($datasetid)/Default.GetBoundGatewayDataSources" -Method GET | ConvertFrom-Json


$UpdateUserCredential = @{
            credentialType ="Basic"
            basicCredentials = @{            
            username= $username
            password= "$(credentialpassword)"
            }
} | ConvertTo-Json



Invoke-PowerBIRestMethod -Url "gateways/$($BounGateway.value.gatewayId)/datasources/$($BounGateway.value.id)" -Method PATCH -Body $UpdateUserCredential | ConvertFrom-Json

 

Download the full source code from here

Thank you for your response Jay. I forgot to add that my dataset is owned by a service principal (SPN) rather than a user principal. Is this approach still feasible?

Hi @timlin ,

 

Do you any update ? If my replay helps you please mark as accepted 

Hi @timlin ,

 

Yes using SPN is feasable, infact if you read my article I've used SPN for the same

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors