Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Organisationer skal ofte klassificere og mærke alle følsomme data i Power BI for at opfylde kravene til overholdelse af angivne standarder. Denne opgave kan være udfordrende for lejere, der har store datamængder i Power BI. For at gøre opgaven lettere og mere effektiv kan du bruge Power BI admin REST API'er til programmatisk at sætte ogfjerneLabels på store mængder Power BI-artefakter.
API'erne angiver eller fjerner mærkater fra artefakter efter artefakt-id.
Krav og overvejelser
- Brugerne skal være Fabric-administratorer for at kunne kalde disse API'er.
- Administratorbrugeren (og den delegerede bruger, hvis det er angivet) skal have tilstrækkelige brugsrettigheder til at angive eller fjerne mærkater.
- Hvis du vil angive en følsomhedsmærkat ved hjælp af API'en setLabels, skal administratorbrugeren (eller den delegerede bruger, hvis det er angivet) have mærkaten inkluderet i deres mærkatpolitik.
- API'erne tillader maksimalt 25 anmodninger pr. time. Hver anmodning kan opdatere op til 2000 artefakter.
- Påkrævet omfang: Tenant.ReadWrite.All
API-dokumentation
Eksempel
I følgende eksempel kan du se, hvordan du angiver og fjerner følsomhedsmærkater på Power BI-dashboards. Lignende kode kan bruges til at angive og fjerne mærkater på semantiske modeller, rapporter og dataflow.
const string adminBearerToken = "<adminBearerToken>";
const string ApiUrl = "<api url>";
var persistedDashboardId = Guid.Parse("<dashboard object Id>");
var credentials = new TokenCredentials(adminBearerToken, "Bearer");
var artifacts = new InformationProtectionArtifactsChangeLabel();
artifacts.Dashboards = new List<ArtifactId> { new ArtifactId(id: persistedDashboardId) };
using (PowerBIClient client = new PowerBIClient(credentials))
{
client.BaseUri = new Uri(ApiUrl);
// Delete labels
var removeResponse = client.InformationProtection.RemoveLabelsAsAdmin(artifacts);
foreach (var updateLabelResult in removeResponse.Dashboards)
{
if (updateLabelResult.Status == Status.Succeeded)
{
Console.WriteLine($"label has been deleted from artifact {updateLabelResult.Id}");
}
else
{
Console.WriteLine($"label has not been deleted from artifact {updateLabelResult.Id}");
}
}
// Set labels
var setLabelRequest = new InformationProtectionChangeLabelDetails();
setLabelRequest.Artifacts = artifacts;
setLabelRequest.LabelId = Guid.Parse("<label Id>");
// assignmentMethod (optional)
setLabelRequest.AssignmentMethod = AssignmentMethod.Privileged;
// delegatedUser (optional)
var delegatedUser = new DelegatedUser();
delegatedUser.EmailAddress = "<delegated user email address>";
setLabelRequest.DelegatedUser = delegatedUser;
var setResponse = client.InformationProtection.SetLabelsAsAdmin(setLabelRequest);
foreach (var updateLabelResult in setResponse.Dashboards)
{
if (updateLabelResult.Status == Status.Succeeded)
{
Console.WriteLine($"label has been upsert on artifact {updateLabelResult.Id}");
}
else
{
Console.WriteLine($"label has not been upsert on artifact {updateLabelResult.Id}");
}
}
}
}