Kategorien:

Kontextfunktionen (Sitzungsobjekt)

IS_ROLE_IN_SESSION

Gibt TRUE zurück, wenn der im Argument übergebene Rollenname eine der aktivierten Rollen in der Sitzung ist (d. h. die von der Funktion CURRENT_ROLE zurückgegebene Rolle erbt die Berechtigungen der angegebenen Rolle).

Die aktivierten Rollen können beliebige Rollen der CURRENT_ROLE-Hierarchie sein. Weitere Informationen zur Rollenhierarchie finden Sie unter Übersicht zur Zugriffssteuerung.

TRUE

Wenn IS_ROLE_IN_SESSION('ANALYST') den Wert TRUE hat, erbt CURRENT_ROLE des Benutzers die Berechtigungen der benutzerdefinierten ANALYST-Rolle. Daher ist die CURRENT_ROLE-Rolle des Benutzers eine Rolle mit höheren Berechtigungen als die benutzerdefinierte ANALYST-Rolle in derselben Rollenhierarchie.

FALSE

Wenn IS_ROLE_IN_SESSION('ANALYST') den Wert FALSE hat, erbt CURRENT_ROLE des Benutzers nicht die Berechtigungen der benutzerdefinierten ANALYST-Rolle. Daher ist die Rolle CURRENT_ROLE des Benutzers entweder eine Rolle mit niedrigeren Berechtigungen als die benutzerdefinierte ANALYST-Rolle, oder die Rollen CURRENT_ROLE des Benutzers und die benutzerdefinierte ANALYST-Rolle befinden sich in unterschiedlichen Rollenhierarchien.

Siehe auch:

IS_OBJECT, Erweiterte Sicherheit auf Spaltenebene

Syntax

is_role_in_session( '<string_literal>' )

Argumente

'Zeichenfolgenliteral'

Der Name der Rolle.

Nutzungshinweise

  • Es kann nur ein Rollenname als Argument übergeben werden.

Beispiel

Überprüfen Sie, ob eine bestimmte Rolle in einer Sitzung aktiviert ist:

select is_role_in_session('ANALYST');

------------------------------+
IS_ROLE_IN_SESSION('ANALYST') |
------------------------------+
            TRUE              |
------------------------------+

Verwenden Sie die Funktion in einer Maskierungsrichtlinie:

case
  when is_role_in_session('ANALYST') then val
  else '*******'
end;