Kategorien:

Kontextfunktionen (Allgemein)

IS_APPLICATION_ROLE_ACTIVATED (SYS_CONTEXT-Funktion)

Gibt den VARCHAR-Wert 'TRUE' zurück, wenn eine Anwendungsrolle im angegebenen Kontext aktiviert ist.

Siehe auch:

SYS_CONTEXT (SNOWFLAKE$APPLICATION-Namespace)

Syntax

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  'IS_APPLICATION_ROLE_ACTIVATED' ,
  '<context>' ,
  '<app_role>'
)
Copy

Argumente

'SNOWFLAKE$APPLICATION'

Gibt an, dass Sie eine Funktion aufrufen möchten, um Kontextinformationen zu der Anwendung zurückzugeben, in der die Funktion aufgerufen wird.

'IS_APPLICATION_ROLE_ACTIVATED'

Ruft die IS_APPLICATION_ROLE_ACTIVATED-Funktion auf.

'context'

Gibt den Ausführungskontext an, den Sie prüfen möchten. Sie können einen der folgenden Werte angeben:

  • SESSION: Prüft, ob sich die Anwendungsrolle in der Rollenhierarchie der Primär- oder Sekundärrolle der aktuellen Sitzung befindet. Die Funktion gibt 'TRUE' zurück, wenn sich die Rolle in der Rollenhierarchie befindet.

  • ACTIVE: Prüft, ob sich die Anwendungsrolle im Kontext des aktuellen Aufrufs in der Rollenhierarchie befindet.

    Wenn Sie beispielsweise eine gespeicherte Prozedur mit Eigentümerrechten aufrufen, wird die Prozedur von der Rolle der Person mit Eigentumsrechten ausgeführt. Die Funktion gibt 'TRUE' zurück, wenn sich die Anwendungsrolle in der Rollenhierarchie der Rolle der Person mit Eigentumsrechten befindet.

'app_role'

Gibt die zu prüfende Anwendungsrolle an.

Qualifizieren Sie den Rollennamen nicht mit dem Namen der Anwendung. Die Funktion ermittelt den Anwendungsnamen automatisch aus dem Kontext, in dem die Funktion aufgerufen wird.

Rückgabewerte

Die Funktion gibt einen der folgenden VARCHAR-Werte zurück:

  • 'TRUE', wenn die Anwendungsrolle in dem durch context angegebenen Kontext aktiviert ist.

  • 'FALSE', wenn die Anwendungsrolle in diesem Kontext nicht aktiviert oder die Anwendungsrolle nicht gültig ist.

Zum Vergleich dieses Rückgabewerts mit dem BOOLEAN-Wert TRUE oder FALSE müssen Sie den Rückgabewert in BOOLEAN umwandeln. Beispiel:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role')::BOOLEAN = TRUE;
Copy

Nutzungshinweise

Beispiele

Das folgende Beispiel gibt TRUE zurück, wenn die Anwendungsrolle my_app_role sich in der Rollenhierarchie der Primär- oder Sekundärrolle der Sitzung befindet:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role');
Copy