Gastnutzer löschen

Aus kvwmap
Version vom 6. Juni 2017, 11:24 Uhr von Pkorduan (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Zum Löschen von Gastnutzern sind Einträge in einigen Tabellen zu löschen. Des Weiteren sollen Gastnutzer ggf. in regelmäßigen Abständen automatisch mit einem Cronjob gelöscht werden. Dazu kann folgendes Script genutzt werden:

#!/bin/bash
rm /var/lib/php5/sessions/*
MYPASSWD='meinpasswort';
mysql -h mysql -u kvwmap -p$MYPASSWD -D kvwmapdb -e "\
 DELETE FROM u_menue2rolle USING u_menue2rolle, user WHERE u_menue2rolle.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM u_groups2rolle USING u_groups2rolle, user WHERE u_groups2rolle.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM u_rolle2used_class USING u_rolle2used_class, user WHERE u_rolle2used_class.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM u_rolle2used_layer USING u_rolle2used_layer, user WHERE u_rolle2used_layer.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM rolle_last_query USING rolle_last_query, user WHERE rolle_last_query.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM rolle_csv_attributes USING rolle_csv_attributes, user WHERE rolle_csv_attributes.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM rolle_saved_layers USING rolle_saved_layers, user WHERE rolle_saved_layers.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM search_attributes2rolle USING search_attributes2rolle, user WHERE search_attributes2rolle.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM rolle USING rolle, user WHERE rolle.user_id = user.ID AND user.Funktion = 'gast';\
 DELETE FROM user WHERE user.Funktion = 'gast'\
"

Darin werden zunächst alle Sessions gelöscht, das Passwort für den Zugang zur mysql-Datenbank gesetzt und anschließend die Tabelleneinträge für die Gast-Nutzer gelöscht. Das Script sollte ausführbar sein und im Web-Container, bzw. auf dem Volume welches in den Web-Container eingebunden ist, liegen und dort ausgeführt werden. Die Backslashes zeigen nur an, dass der Text hintereinander stehen muss, bzw. keine Zeilenumbrüche im Text sein dürfen. Die Variante mit dem zusammenhängenden String sieht so aus:

#!/bin/bash
rm /var/lib/php5/sessions/*
MYPASSWD='meinpasswort';
mysql -h mysql -u kvwmap -p$MYPASSWD -D kvwmapdb -e "DELETE FROM u_menue2rolle USING u_menue2rolle, user WHERE u_menue2rolle.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM u_groups2rolle USING u_groups2rolle, user WHERE u_groups2rolle.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM u_rolle2used_class USING u_rolle2used_class, user WHERE u_rolle2used_class.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM u_rolle2used_layer USING u_rolle2used_layer, user WHERE u_rolle2used_layer.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM rolle_last_query USING rolle_last_query, user WHERE rolle_last_query.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM rolle_csv_attributes USING rolle_csv_attributes, user WHERE rolle_csv_attributes.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM rolle_saved_layers USING rolle_saved_layers, user WHERE rolle_saved_layers.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM search_attributes2rolle USING search_attributes2rolle, user WHERE search_attributes2rolle.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM rolle USING rolle, user WHERE rolle.user_id = user.ID AND user.Funktion = 'gast';DELETE FROM user WHERE user.Funktion = 'gast'"