Sichere Objekte: Redigieren von Informationen in Fehlermeldungen¶
Fehlermeldungen im Zusammenhang mit sicheren Objekten verhalten sich wie folgt:
- Vor der Änderung:
Fehlermeldungen, die sich auf sichere Objekte beziehen, zeigen die vollständige Meldung an.
- Nach der Änderung:
Fehlermeldungen, die sich auf sichere Objekte beziehen, können Ausblendungen enthalten.
Die Änderung gilt für Fehlermeldungen, die sich auf die folgenden Arten von Objekten beziehen:
Sichere Funktionen (einschließlich sicherer Tabellenfunktionen)
Weitere Informationen über sichere Objekte finden Sie unter Sichere Objekte zur Kontrolle des Datenzugriffs verwenden.
Wenn bei der Expansion oder Auswertung eines sicheren Objekts ein Fehler festgestellt wird, wird die Fehlermeldung für die Ausblendung berücksichtigt. Wenn eine Fehlermeldung ausgeblendet wird, bleibt der Fehlercode unverändert.
Es sind zwei Arten von Änderungen an Fehlermeldungen möglich: Ausblendung während der Ausführung und Ausblendung in den Metadaten nach der Ausführung. Diese Arten von Änderungen werden in den folgenden Abschnitten beschrieben.
Ausblendung während der Ausführung¶
Eine ganze Fehlermeldung oder ein Teil einer Fehlermeldung kann ausgeblendet werden, wenn der Fehler während einer Operation zurückgegeben wird. Im Allgemeinen tritt diese Art von Fehlermeldung auf, wenn ein Benutzer versucht, ein sicheres Objekt zu verwenden, ohne die Berechtigung OWNERSHIP für das sichere Objekt zu besitzen.
Ausblendung in Metadaten nach der Ausführung¶
Benutzer können nach dem Auftreten von Fehlern Metadaten zu diesen Fehlern einsehen, einschließlich der Fehlermeldungen. Benutzer können diese Metadaten z. B. auf der Seite Query History in Snowsight oder durch Abfragen von Ansichten und Aufrufen von Funktionen in Snowflake Information Schema einsehen. Wenn eine Fehlermeldung während der Ausführung ausgeblendet wird, wird die Fehlermeldung in den Metadaten nach der Ausführung für alle Benutzer immer ausgeblendet.
Wenn eine Fehlermeldung während der Ausführung nicht ausgeblendet wird, erscheint die Meldung für einige Benutzer unverändert in den Metadaten und für andere Benutzer wird sie ausgeblendet. Die Fehlermeldung bleibt in den Metadaten in den folgenden Fällen jeweils unverändert:
Der Benutzer, der die Metadaten betrachtet, hat die Berechtigung AUDIT.
Für den Benutzer, der die Metadaten anzeigt, ist der Benutzerparameter ENABLE_UNREDACTED_SECURE_OBJECT_ERROR auf
TRUEeingestellt. Ein Benutzer mit der Berechtigung AUDIT kann diesen Parameter für einen Benutzer festlegen.Der Benutzer, der die Metadaten betrachtet, hat die Anweisung ausgeführt, die den Fehler verursacht hat.
In allen anderen Fällen wird die Fehlermeldung in den Metadaten ausgeblendet. Die ausgeblendeten Fehlermeldungen enthalten den Text: Error in secure object.
Beispiele für die Ausblendung von Fehlermeldungen¶
Die folgenden Beispiele zeigen Fehlermeldungen, die ausgeblendet dargestellt sind. Die Ausblendung kann während der Ausführung oder in den Metadaten nach der Ausführung erfolgen.
Beispiel 1: Abfrage einer sicheren Ansicht¶
Im folgenden Beispiel führt ein Benutzer mit der Berechtigung SELECT für eine sichere Ansicht eine Abfrage für die Ansicht aus, die einen Fehler liefert.
Erstellen Sie die sichere Ansicht:
Löschen Sie die in der Abfrage der Ansicht verwendete Tabelle:
Führen Sie eine Abfrage in der Ansicht aus:
Fehlermeldung, die allen Benutzern vor der Änderung angezeigt wird¶
Ausgeblendete Fehlermeldung, die bei einigen Benutzern nach der Änderung angezeigt wird¶
Beispiel 2: Ausführen einer Abfrage, die eine sichere Funktion aufruft¶
In den folgenden Beispielen führt ein Benutzer mit der Berechtigung USAGE für eine sichere Funktion eine Abfrage aus, die die sichere Funktion aufruft, aber die sichere Funktion gibt einen Fehler zurück.
Beispiel 2a: Die Funktionsargumente führen zu einem Fehler¶
Erstellen Sie die sichere Funktion:
Führen Sie eine Abfrage aus, welche die sichere Funktion aufruft:
Fehlermeldung, die allen Benutzern vor der Änderung angezeigt wird¶
Ausgeblendete Fehlermeldung, die bei einigen Benutzern nach der Änderung angezeigt wird¶
Beispiel 2b: Ein Objekt, von dem die Funktion abhängt, wird gelöscht¶
Erstellen Sie die sichere Funktion:
Löschen Sie die in der Funktion verwendete Tabelle:
Führen Sie eine Abfrage aus, welche die sichere Funktion aufruft:
Fehlermeldung, die allen Benutzern vor der Änderung angezeigt wird¶
Ausgeblendete Fehlermeldung, die bei einigen Benutzern nach der Änderung angezeigt wird¶
Beispiel 3: Eine Maskierungsrichtlinie gibt einen Fehler zurück¶
Im folgenden Beispiel führt ein Benutzer eine Abfrage in einer Ansicht mit einer Maskierungsrichtlinie aus, die auf einen Fehler stößt.
Erstellen Sie eine Maskierungsrichtlinie:
Erstellen Sie eine Ansicht und legen Sie die Maskierungsrichtlinie für eine Spalte in der Ansicht fest:
Löschen Sie die in der Maskierungsrichtlinie verwendete Tabelle:
Führen Sie eine Abfrage in der Ansicht als Benutzer aus, der keine Berechtigung für die Maskierungsrichtlinie hat:
Fehlermeldung, die allen Benutzern vor der Änderung angezeigt wird¶
Ausgeblendete Fehlermeldung, die bei einigen Benutzern nach der Änderung angezeigt wird¶
Beispiel 4: Eine Zeilenzugriffsrichtlinie gibt einen Fehler zurück¶
Im folgenden Beispiel führt ein Benutzer eine Abfrage in einer Ansicht mit einer Zeilenzugriffsrichtlinie aus und stößt auf einen Fehler.
Erstellen Sie eine Zeilenzugriffsrichtlinie:
Erstellen Sie eine Ansicht und fügen Sie der Ansicht die Zeilenzugriffsrichtlinie hinzu:
Löschen Sie die Tabelle, die in der Zeilenzugriffsrichtlinie verwendet wird:
Fragen Sie die Ansicht als Benutzer ab, der nicht über OWNERSHIP-Berechtigungen für die Zeilenzugriffsrichtlinie verfügt:
Fehlermeldung, die allen Benutzern vor der Änderung angezeigt wird¶
Ausgeblendete Fehlermeldung, die bei einigen Benutzern nach der Änderung angezeigt wird¶
Ref: 1858