?>
Ermöglicht einer Sitzung, vorübergehend eine administrative Rolle wie Superuser, Daten- oder Aktionsadministrator zu übernehmen, um Operationen mit erweiterten Berechtigungen durchzuführen. Dies ist entscheidend für administrative Aufgaben, die über die Standardberechtigungen eines Benutzers hinausgehen.
| Parameter | Beschreibung |
|---|---|
| adminRole | Gibt die zu übernehmende administrative Rolle an. |
| ACTION | Gewährt uneingeschränkten (berechtigungsfreien) Zugriff auf Aktionssätze und Aktionen. |
| DATA | Gewährt uneingeschränkten (berechtigungsfreien) Zugriff auf Caslib-, Tabellen- und Spaltendefinitionen, einschließlich der Möglichkeit, Caslibs hinzuzufügen. |
| SUPERUSER | Bietet die Privilegien der Aktions- und Datenrollen sowie die Möglichkeit, Rollen und Pfade zu verwalten. Dies ist die umfassendste Rolle. |
Die Aktion `assumeRole` erstellt keine Daten. Sie wird verwendet, um Berechtigungen zu erhöhen, oft bevor Datenverwaltungs- oder Analyseaktionen ausgeführt werden, die erweiterte Zugriffsrechte erfordern.
/* Für diese Aktion ist keine Datenerstellung erforderlich. Sie wird verwendet, um Berechtigungen für nachfolgende Schritte zu ändern. */
Dieses Beispiel zeigt, wie man die Rolle des Superusers in einer CAS-Sitzung übernimmt. Dies ist eine häufige Voraussetzung für administrative Aufgaben.
| 1 | PROC CAS; ACCESSCONTROL.assumeRole / adminRole="SUPERUSER"; RUN; |
In diesem Szenario muss ein Administrator eine neue globale Caslib hinzufügen, was Superuser-Rechte erfordert. Die Aktion `assumeRole` wird verwendet, um diese Rechte temporär zu erlangen, die Caslib hinzuzufügen und dann die ursprünglichen Rechte durch Beenden der Sitzung wiederherzustellen.
| 1 | PROC CAS; SESSION casauto; /* Übernahme der Superuser-Rolle zur Durchführung administrativer Aufgaben */ ACCESSCONTROL.assumeRole / adminRole="SUPERUSER"; /* Hinzufügen einer neuen globalen Caslib (erfordert Superuser-Rechte) */ TABLE.addCaslib / name="new_global_caslib" dataSource={srcType="PATH"} path="/path/to/shared/data" SESSION=false; /* 'session=false' macht die Caslib global */ /* Überprüfung, ob die Caslib hinzugefügt wurde */ TABLE.caslibInfo / caslib="new_global_caslib"; /* Beenden der Sitzung, um die Superuser-Rolle aufzugeben */ endSession; RUN; |