Dataverse.Unmask-Funktion

Gilt für: Canvas-Apps

Fordert den nicht maskierten Wert einer gesicherten Spalte für einen einzelnen Microsoft Dataverse Datensatz an.

Description

Die Dataverse.Unmask Funktion liest eine Spalte asynchron und gibt einen einzelnen Wert mit dem Power Fx-Typ der Spalte zurück. Es gibt keinen Datensatz oder eine Tabelle zurück, aktualisiert den Quelldatensatz, ändert die Maskierungsregel oder ersetzt maskierte Werte an anderer Stelle in Ihrer App.

Dataverse erzwingt die Berechtigungen des Benutzers. Die Funktion gewährt keine Zugriffs- oder Umgehungssicherheit auf Spaltenebene. Um einen nicht maskierten Wert zu lesen, benötigt der Benutzer Zugriff auf die Tabelle und den Datensatz, die Berechtigung " Spaltenleseberechtigung " und die entsprechende entmaskete Berechtigung "Lesen" in einem Spaltensicherheitsprofil.

Fügen Sie die Dataverse-Tabelle als Datenquelle in Ihrer Canvas-App hinzu, und aktivieren Sie die Sicherheit auf Spaltenebene in der Spalte. Um die Maskierung zu konfigurieren, wenden Sie eine unterstützte Maskierungsregel in einer verwalteten Umgebung an. Eine gesicherte Spalte verfügt nicht unbedingt über eine Maskierungsregel. Siehe Sicherheit auf Spaltenebene und Erstellen und Verwalten von Maskierungsregeln für Konfiguration, Berechtigungsoptionen und unterstützte Maskierungsregeltypen.

Important

Lassen Sie Ihren Administrator die entsprechende berechtigung " Nicht maskiertes Lesen " für das Szenario auswählen. Gewähren Sie nicht nur allen Datensätzen , um ein Beispiel für einen einzelnen Datensatz zu aktivieren. Testen Sie Zugriffsbeschränkungen mit einem Nicht-Administratorkonto, da die Sicherheit auf Spaltenebene keine Daten von Systemadministratoren ausblendet.

Syntax

Dataverse.Unmask( Record, Column )
  • Datensatz – Erforderlich. Ein Datensatz, der seine Dataverse-Datensatzidentität beibehält und genau einer Dataverse-Datenquelle zugeordnet ist.
  • Spalte – Erforderlich. Der Bezeichner einer gesicherten, unterstützten Skalarspalte für diesen Datensatz. Geben Sie einen Spaltenbezeichner und keinen Textausdruck an, der den Spaltennamen enthält.

Sie können einen gültigen Anzeigenamen oder logischen Namen für Spalte verwenden. Verwenden Sie einfache Anführungszeichen um einen Anzeigenamen, der Leerzeichen enthält, z 'Sensitive reference'. B. . Doppelte Anführungszeichen erstellen ein Textliteral und sind nicht gleichwertig. Power Apps löst den Bezeichner in den logischen Namen der Spalte auf.

Datensatz- und Spaltenanforderungen

Ein ausgewählter Katalogdatensatz, ein von LookUp zurückgegebener Datensatz oder ein in einer Variablen oder Auflistung gespeicherter Datensatz kann verwendet werden, wenn er seine Dataverse-Identität und -Zuordnung mit genau einer Dataverse-Quelle beibehält. Durch das Erstellen eines anonymen Datensatzes mit denselben Feldwerten wird diese Identität nicht hergestellt.

Weisen Sie Datensätze aus verschiedenen Dataverse-Tabellen nicht derselben Datensatzvariable zu, die von Dataverse.Unmask. Eine solche Variable ist mehreren Quellen zugeordnet und wird abgelehnt, auch wenn die Tabellen Spalten mit übereinstimmenden Namen gesichert haben. Verwenden Sie separate Einzelquellenvariablen oder Aufrufe.

Die Zielspalte muss gesichert sein und über einen unterstützten Skalartyp verfügen. Nachschlagewerte, Datensätze, Tabellen, Dateien, Bilder und nicht typisierte Spalten werden nicht unterstützt. Das Lesen eines Datensatzes durch einen Nachschlagevorgang unterscheidet sich von der Entmeinung einer Nachschlagespalte. Informationen zu unterstützten Maskierungsszenarien finden Sie in der Dokumentation zur Maskierungsregel ; Die Annahme des Formeltyps stellt nicht fest, dass eine Maskierungsregel für eine Spalte konfiguriert werden kann.

Rückgabewert und Fehler

Das Ergebnis hat den gleichen Power Fx-Typ wie die Zielspalte. Beispielsweise gibt eine Textspalte Text zurück, kein Datensatz, der Text enthält.

Verwenden Sie IfError , um fehlgeschlagene Lesevorgänge zu behandeln. Dataverse bestimmt die Antwort, wenn der Zugriff eingeschränkt ist; gehen Sie nicht davon aus, dass jede Berechtigungsverweigerung einen HTTP-Fehler erzeugt.

Situation Behavior
Der Datensatz hat keine zugeordnete Dataverse-Quelle oder mehrere Dataverse-Quellen. Power Apps Studio lehnt das Datensatzargument ab.
Die Spalte ist unbekannt, ungesichert oder hat einen nicht unterstützten Typ. Power Apps Studio lehnt das Spaltenargument ab.
Ein nicht leerer Datensatz hat zur Laufzeit keine gültige Identität, oder seine Dataverse-Quelle kann nicht aufgelöst werden. Die Funktion gibt einen Fehler vom Ungültigen Datensatz zurück.
Die Dataverse-Anforderung schlägt fehl. Die Funktion gibt einen Power Fx-Fehler zurück, den Sie mit IfError behandeln können.
Eine erfolgreiche Anforderung gibt keine Zeile zurück, lässt die angeforderte Spalte aus oder gibt einen NULL-Wert zurück. Das Ergebnis ist leer.

Ein leeres Ergebnis allein identifiziert kein Berechtigungsproblem. Überprüfen Sie den ausgewählten Datensatz, dessen Wert und den Zugriff des Benutzers, bevor Sie ein leeres Ergebnis als Fehler behandeln.

Examples

In diesen Beispielen wird eine illustrative Customers Dataverse-Tabelle mit einer gesicherten Textspalte mit dem Namen verwendet 'Sensitive reference'. Fügen Sie die Tabelle als Datenquelle hinzu, konfigurieren Sie eine Maskierungsregel, und verwenden Sie synthetische Datensätze mit einem Testbenutzer, der über die entsprechenden Berechtigungen verfügt. Ersetzen Sie die Tabellen- und Spaltennamen durch Eigene.

Lesen eines ausgewählten Datensatzes

Legen Sie die Items-Eigenschaft eines Katalogs auf Customers. Wenn ein gespeicherter Datensatz ausgewählt ist, fordert diese Formel den nicht maskierten Verweis an:

Dataverse.Unmask( Gallery1.Selected, 'Sensitive reference' )

Wenn der gespeicherte Wert ist "REF-12345" und der Benutzer über die Berechtigung verfügt, ihn unmasket zu lesen, ist das erwartete Ergebnis der Text "REF-12345". Die Formel ändert den maskierten Wert nicht durchgelesen Gallery1.Selected.'Sensitive reference'.

Behandeln eines Fehlers für ein Textergebnis

Verwenden Sie die folgende Formel in der Texteigenschaft einer Beschriftung, in der Sie den unmasketen Wert anzeigen möchten:

IfError(
    Dataverse.Unmask( Gallery1.Selected, 'Sensitive reference' ),
    "Unable to show this value."
)

Der Ersetzungswert ist Text, da es sich um 'Sensitive reference' eine Textspalte handelt. Verwenden Sie für einen anderen unterstützten Spaltentyp einen kompatiblen Ersatzwert, oder konvertieren Sie das Ergebnis, bevor Sie eine Textnachricht zurückgeben. IfError behandelt Fehler, nicht erfolgreiche leere Ergebnisse.

Eine vollständige Ein- und Ausblenden-Interaktion finden Sie unter Einblenden eines maskierten Dataverse-Spaltenwerts.

Datenhandhabung

Wiederholte Auswertungen können zwischengespeicherte Ergebnisse wiederverwenden, anstatt neue Netzwerkanforderungen vorzunehmen. Verlassen Sie sich nicht auf eine andere Auswertung, um zuletzt geänderte Berechtigungen erneut zu überprüfen. Das Ausblenden eines Steuerelements ist keine Autorisierungsgrenze und löscht zwischengespeicherte Werte nicht.

Speichern Sie nicht ungemaskete Werte mit SaveData, schreiben Sie sie in Protokolle, oder kopieren Sie sie in eine weniger geschützte Datenquelle. Vermeiden Sie die Veröffentlichung nicht maskierter Daten in Screenshots oder Diagnoseanlagen.