Gibt alle Rollen zurück, die dem angegebenen Element (Systemprivileg, Systemrolle, benutzerdefinierte Rolle oder Benutzername) erteilt wurden, oder zeigt die gesamte Hierarchiestruktur der Rollen an.
sp_displayroles( user_role_name , display_mode , grant_type )
user_role_name Verwenden Sie diesen optionalen CHAR(128)-Parameter, um den Namen eines Systemprivilegs, einer Systemrolle, einer benutzerdefinierten Rolle oder eines Benutzers anzugeben. Wenn der Name nicht angegeben wird oder NULL ist, wird standardmäßig der aktuelle Benutzer verwendet.
display_mode Verwenden Sie diesen VARCHAR(30)-Parameter, um anzugeben, ob über- oder untergeordnete Hierarchieebenen relativ zu user_role_name zurückgegeben werden sollen. Wenn display_mode nicht angegeben wird oder NULL ist, werden nur ausdrücklich erteilte Rollen und Privilegien zurückgegeben (keine geerbten Rollen oder Privilegien). Zu den möglichen Werte für display_mode gehören folgende:
expand_up Zeigt die user_role_name erteilten Systemrollen in der übergeordneten Hierarchiestruktur für user_role_name.
expand_down Zeigt die user_role_name erteilten Systemrollen und Privilegien, einschließlich der Rollenhierarchiestruktur für die untergeordneten Ebenen von user_role_name.
grant_type Verwenden Sie diesen VARCHAR(30)-Parameter, um den zurückgegebenen Erteilungstyp zu steuern. Wenn er nicht angegeben wurde, wird standardmäßig ALL verwendet. Zu den möglichen Werten für grant_type gehören folgende:
NO_ADMIN Zeigt alle Rollen und Systemprivilegien, die user_role_name mit der Klausel WITH NO ADMIN OPTION oder WITH ADMIN OPTION erteilt wurden.
ADMIN Gibt alle Rollen und Systemprivilegien zurück, die user_role_name mit der Klausel WITH ADMIN OPTION oder WITH ADMIN ONLY OPTION erteilt wurden.
ALL Zeigt alle user_role_name erteilten Rollen und Systemprivilegien an.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
role_name | CHAR(128) | Die user_role_name erteilte Rolle bzw. das erteilte Systemprivileg. |
parent_role_name | CHAR(128) | Die Rollennamen für die übergeordneten Elemente von user_role_name. |
grant_type | CHAR(10) | Informationen dazu, ob user_role_name Administrationsrechte hat. Mögliche Werte: NO ADMIN, ADMIN oder ADMIN ONLY. |
role_level | SMALLINT |
Beim expand_down-Modus ist die Stufe gleich 1 für direkt erteilte Rollen, 2 für die nächste Ebene darunter usw. Beim expand_up-Modus ist die Stufe gleich 0 für die Rollen, denen user_role_name erteilt wurde, -1 für die nächste Hierarchieebene darüber usw. |
Bei Systemprivilegien zeigt das Ergebnis den Namen des Systemprivilegs statt des dazugehörigen Rollennamens. Beim expand_down-Modus ist parent_role_name für Stufe 1 (direkt erteilte Rollen) NULL. Beim Standardmodus ist die role_level-Spalte gleich 1 und parent_role_name ist NULL, da beim Standardmodus nur die direkt erteilten Rollen angezeigt werden.
Wenn diese Prozedur für einen Benutzer mit expand_up-Modus ausgeführt wird, werden keine Ergebnisse zurückgegeben, da ein Benutzer sich in jeder Rollenhierarchie auf der obersten Ebene befindet. Wenn diese Prozedur für ein unveränderliches Systemprivileg mit expand_down-Modus ausgeführt wird, werden ebenfalls keine Ergebnisse zurückgegeben, da ein unveränderliches Systemprivileg sich in jeder Rollenhierarchie auf der untersten Ebene befindet. Im Standardmodus werden nur die direkt erteilten Rollen und Systemprivilegien angezeigt.
SQL/2008 Erweiterung des Herstellers.
Keine Privilegien sind erforderlich, um diese Prozedur für Sie selbst auszuführen. 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.
Keine
Die folgende Anweisung gibt alle Rollen zurück, die dem Benutzer erteilt wurden, der den Befehl ausgibt.
CALL sp_displayroles(); |
In diesem Beispiel wird die Liste der Systemprivilegien zurückgegeben, die der SYS_SPATIAL_ADMIN_ROLE-Systemrolle erteilt wurden:
CALL sp_displayroles( 'SYS_SPATIAL_ADMIN_ROLE' ); |
role_name | parent_role_name | grant_type | role_level |
---|---|---|---|
PUBLIC | (NULL) | NO ADMIN | 1 |
MANAGE ANY SPATIAL OBJECT | (NULL) | NO ADMIN | 1 |
In diesem Beispiel wird die Liste der Systemprivilegien zurückgegeben, die der SYS_SPATIAL_ADMIN_ROLE-Systemrolle erteilt wurden, einschließlich aller Rollen, die sich in der Rollenhierarchie darüber befinden:
CALL sp_displayroles( 'SYS_SPATIAL_ADMIN_ROLE', 'expand_up'); |
role_name | parent_role_name | grant_type | role_level |
---|---|---|---|
SYS_AUTH_DBA_ROLE | dbo | ADMIN | -3 |
SYS_AUTH_DBA_ROLE | SYS_RUN_REPLICATION_ROLE | ADMIN | -3 |
SYS_AUTH_SSO_ROLE | SYS_AUTH_DBA_ROLE | ADMIN | -2 |
MANAGE ROLES | SYS_AUTH_SSO_ROLE | ADMIN | -1 |
MANAGE ROLES | SYS_REPLICATION_ADMIN_ROLE | NO ADMIN | -1 |
SYS_SPATIAL_ADMIN_ROLE | MANAGE ROLES | ADMIN ONLY | 0 |
Die folgende Anweisung gibt alle Systemprivilegien zurück, die dem Benutzer User1 erteilt wurden:
CALL sp_displayroles( 'User1' ); |
In diesem Beispiel wird die Liste der zu Ansichten gehörenden Systemprivilegien zurückgegeben:
SELECT sys_priv_name FROM sp_sys_priv_role_info() WHERE sys_priv_name LIKE '%VIEW%' |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |