Problembehandlung bei der Zugriffssteuerung¶
Wenn eine SQL-Anweisung fehlschlägt, weil die Rolle, die zum Ausführen der Abfrage verwendet wird, nicht über die erforderlichen Zugriffssteuerungsrechte verfügt, können Sie die EXPLAIN_PRIVILEGES-Funktion verwenden, um genau festzustellen, welche Berechtigungen fehlen.
Problembehandlung als Admin¶
Eine Person mit Administratorrechten, die über Berechtigungen für alle Objekte in Snowflake verfügt, kann die EXPLAIN_PRIVILEGES-Funktion für eine beliebige SQL-Anweisung aufrufen.
Tipp
Wenn Sie möchten, dass jemand, der keine Berechtigung für Objekte hat, Zugriffssteuerungsprobleme mit EXPLAIN_PRIVILEGES diagnostizieren kann, gewähren Sie dieser Person die RESOLVE ALL ON ACCOUNT-Berechtigung.
Beispiel: Auflisten aller Berechtigungen, die zum Ausführen einer SQL-Anweisung erforderlich sind
Beispielausgabe:
Diese Ausgabe zeigt an, dass Sie eine beliebige Berechtigung für die Datenbank MYDB sowie die MONITOR-Berechtigung für das Schema MYDB.MYSCHEMA benötigen.
Beispiel: Auflisten fehlender Berechtigungen für eine bestimmte Rolle
Der folgende Aufruf legt fest, ob die analyst_role (einschließlich der Berechtigungen aus den ihr zugewiesenen Rollen) über die erforderlichen Berechtigungen zum Ausführen der SELECT-Anweisung verfügt, und, wenn nicht, die fehlenden Berechtigungen zurückgibt.
Problembehandlung bei Ihrer eigenen Abfrage¶
Sie müssen mindestens eine Berechtigung für die Objekte haben, auf die in Ihrer Abfrage verwiesen wird, um die EXPLAIN_PRIVILEGES-Funktion aufrufen zu können. Wenn diese Berechtigungen für das Objekt nicht ausreichen, um Ihre Abfrage erfolgreich auszuführen, rufen Sie die EXPLAIN_PRIVILEGES-Funktion auf, wobei das missing_only-Argument auf true gesetzt ist, um die erforderlichen zusätzlichen Berechtigungen zu bestimmen.
Wenn Sie beispielsweise über Berechtigungen für die mydb-,``myschema``- und mytable-Objekte verfügen, aber Ihre Abfrage aufgrund von Problemen mit der Zugriffssteuerung immer noch fehlschlägt, führen Sie den folgenden Befehl aus:
Wenn Ihrer aktuellen Rolle Berechtigungen fehlen, gibt die Funktion die spezifischen Berechtigungen zurück, die Sie benötigen. Beispiel: