accessControl assumeRole

Komplexes Szenario: Automatisierte Bereinigung temporärer Sitzungs-Caslibs

Scénario de test & Cas d'usage

Geschäftskontext

Im Rahmen eines nächtlichen Wartungs-Jobs muss ein Skript alle temporären Sitzungs-Caslibs bereinigen, die von Benutzern während des Tages erstellt wurden und nicht mehr aktiv sind. Dies erfordert SUPERUSER-Rechte, um alle Caslibs auf dem Server zu sehen und zu löschen, unabhängig vom Besitzer.
Über das Set : accessControl

Verwaltung von Zugriffsrechten und Datensicherheit.

Entdecken Sie alle Aktionen von accessControl
Datenaufbereitung

Simulation der Erstellung mehrerer Sitzungs-Caslibs durch verschiedene Benutzer, die als Ziel für das Bereinigungsskript dienen.

Kopiert!
1/* Simuliert Benutzer A, der eine temporäre Caslib erstellt */
2PROC CAS; SESSION user_a;
3TABLE.addCaslib / name="temp_proj_alpha" dataSource={srcType="PATH"} path="/tmp/user_a/alpha";
4RUN;
5 
6/* Simuliert Benutzer B, der eine weitere temporäre Caslib erstellt */
7PROC CAS; SESSION user_b;
8TABLE.addCaslib / name="temp_proj_beta" dataSource={srcType="PATH"} path="/tmp/user_b/beta";
9RUN;

Étapes de réalisation

1
Das Wartungsskript startet eine Sitzung und übernimmt die SUPERUSER-Rolle, um volle Kontrolle über den Server zu erlangen.
Kopiert!
1 
2PROC CAS;
3 
4SESSION maintenance_job;
5ACCESSCONTROL.assumeRole / adminRole="SUPERUSER";
6RUN;
7 
2
Das Skript listet alle Caslibs auf dem Server auf (ohne Angabe eines Caslib-Namens) und filtert nach denen, die mit 'temp_' beginnen.
Kopiert!
1PROC CAS; SESSION maintenance_job;
2TABLE.caslibInfo / RESULT=r;
3RUN;
4 
5PROC PRINT DATA=r.caslibinfo (where=(find(name, 'temp_') > 0));
6RUN;
3
Das Skript löscht die identifizierten temporären Caslibs. (Hinweis: In einem echten Skript würde dies in einer Schleife geschehen).
Kopiert!
1PROC CAS; SESSION maintenance_job;
2TABLE.dropCaslib / caslib="temp_proj_alpha";
3TABLE.dropCaslib / caslib="temp_proj_beta";
4RUN;
4
Die Sitzung wird beendet, um die SUPERUSER-Rolle sicher abzulegen.
Kopiert!
1 
2PROC CAS;
3 
4SESSION maintenance_job;
5endSession;
6RUN;
7 

Erwartetes Ergebnis


Das Skript übernimmt erfolgreich die SUPERUSER-Rolle. Die `caslibInfo`-Aktion listet alle Caslibs auf, einschließlich 'temp_proj_alpha' und 'temp_proj_beta'. Die `dropCaslib`-Aktionen werden erfolgreich ausgeführt und entfernen die temporären Caslibs. Das Beenden der Sitzung stellt sicher, dass die erhöhten Berechtigungen nur für die Dauer des Wartungs-Jobs aktiv sind, was eine bewährte Sicherheitspraxis ist.