Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Benutzer- und Datenbanksicherheit » Benutzersicherheit (Rollen und Privilegien) » Benutzer

 

Rollen und Privilegien für einen Benutzer oder eine Rolle anzeigen (SQL)

Zeigen Sie die Rollen und Privilegien an, die ein Benutzer hat, einschließlich der geerbten Rollen und Privilegien. Sie können diese Aufgabe auch verwenden, um die Rollen und Privilegien für eine bestimmte Rolle anzuzeigen.

Voraussetzungen

  • sp_displayroles-Systemprozedur: Wenn Sie diese Prozedur für sich selbst ausführen möchten, benötigen Sie keine Privilegien. Um jedoch die Systemprivilegien oder Rollen für eine andere Benutzer-ID oder eine Rolle zurückgeben zu können, müssen Sie das MANAGE ROLES-Systemprivileg haben.

  • sp_objectpermission-Systemprozedur: Wenn Sie diese Prozedur für sich selbst oder für in Ihrem Eigentum stehende Objekte ausführen möchten, benötigen Sie keine Privilegien. Um diese Prozedur jedoch für eine andere Benutzer-ID oder für ein im Eigentum einer anderen Benutzer-ID stehendes Objekt aufrufen zu können, müssen Sie das MANAGE ANY OBJECT PRIVILEGE-Systemprivileg haben.

 Aufgabe
  1. Stellen Sie eine Verbindung mit der Datenbank her.

  2. Um die Rollen und Systemprivilegien des Benutzers anzuzeigen, führen Sie eine Anweisung aus, die die sp_displayroles-Systemprozedur aufruft (ähnlich der folgenden, wobei userid die Benutzer-ID des Benutzers ist):

    SELECT * FROM sp_displayroles( 'userid', 'expand_down');
  3. Um die Privilegien eines Benutzers auf Objektebene anzuzeigen, führen Sie eine Anweisung aus, die die sp_objectpermission-Systemprozedur aufruft (ähnlich der folgenden):

    SELECT * FROM sp_objectpermission('userid');

Ergebnisse

Die role_name-Spalte in den Ergebnissen für sp_displayroles enthält geerbte Rollen und Systemprivilegien sowie diejenigen, die dem Benutzer explizit erteilt wurden. Wenn die Rolle bzw. das Systemprivileg von einer anderen Rolle geerbt wurde, wird der Name dieser Rolle in der parent_role_name-Spalte angezeigt. Der grant_type-Spalte können Sie entnehmen, ob der Benutzer Administrationsrechte für die Rolle bzw. das Systemprivileg hat. Die role_level-Spalte zeigt eine Hierarchie für die Vererbung, da Vererbung durch Mitgliedschaft in einer Rolle eintreten kann, die wiederum Mitglied einer anderen Rolle ist, usw. Dies kann Ihnen bei der Fehlerbehandlung helfen, wenn Sie einem Benutzer eine Rolle oder ein Privileg entziehen, aber feststellen, dass dieser die Rolle bzw. das Privileg weiterhin nutzen kann.

Die Ergebnisse für sp_objectpermission enthalten geerbte Privilegien auf Objektebene sowie diejenigen, die dem Benutzer explizit erteilt wurden. In der grantee-Spalte können Sie sehen, woher das Privileg auf Objektebene geerbt wurde. Die grantor-Spalte zeigt, wer die eigentliche Erteilung ausgeführt hat. Der grantable-Spalte können Sie entnehmen, ob der Benutzer Administrationsrechte für das Privileg hat.

 Siehe auch