Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m290_guko:learningunits:lu12:theorie:b_user_erstellen [2025/11/11 23:56] – gkoch | modul:m290_guko:learningunits:lu12:theorie:b_user_erstellen [2025/11/12 00:16] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| <WRAP round 80% box center> | <WRAP round 80% box center> | ||
| - | **Ziel: | + | **Ziel: |
| + | Wir nutzen folgende Personen/ | ||
| + | * **Caro Steig** & **Martin Merten** ≈ **Admins** (Website-Admin, | ||
| + | * **Shaolin Tran** ≈ **Redakteur** (Editor) | ||
| + | </ | ||
| + | |||
| + | ===== 0) Setup: Beispiel-DB '' | ||
| + | <WRAP round 80% box> | ||
| + | <code sql> | ||
| + | -- als root | ||
| + | CREATE DATABASE IF NOT EXISTS wttw; | ||
| + | USE wttw; | ||
| + | |||
| + | -- Minimaler WP-ähnlicher Ausschnitt für die Übung: | ||
| + | CREATE TABLE IF NOT EXISTS users ( | ||
| + | user_id | ||
| + | display_name VARCHAR(100) NOT NULL, | ||
| + | email | ||
| + | ); | ||
| + | |||
| + | CREATE TABLE IF NOT EXISTS posts ( | ||
| + | post_id | ||
| + | author_id INT NOT NULL, | ||
| + | title | ||
| + | status | ||
| + | published_at DATETIME NULL, | ||
| + | CONSTRAINT fk_posts_author FOREIGN KEY (author_id) REFERENCES users(user_id) | ||
| + | ); | ||
| + | |||
| + | CREATE TABLE IF NOT EXISTS comments ( | ||
| + | comment_id INT PRIMARY KEY AUTO_INCREMENT, | ||
| + | post_id | ||
| + | author | ||
| + | body TEXT NOT NULL, | ||
| + | created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| + | CONSTRAINT fk_comments_post FOREIGN KEY (post_id) REFERENCES posts(post_id) | ||
| + | ); | ||
| + | |||
| + | INSERT INTO users(display_name, | ||
| + | ('Caro Steig',' | ||
| + | (' | ||
| + | (' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== 1) CREATE USER – Benutzer anlegen ===== | ||
| + | <WRAP round 80% box center> | ||
| **Syntax: | **Syntax: | ||
| - | <code sql> | + | <code sql> |
| </ | </ | ||
| - | ==== Host verstehen ==== | + | ==== Host verstehen |
| <WRAP round 80% box> | <WRAP round 80% box> | ||
| - | * ''' | + | * ''' |
| - | * ''' | + | * ''' |
| - | * Host kann auch eine IP/Range sein: ''' | + | * ''' |
| </ | </ | ||
| - | ==== Schritt-für-Schritt | + | ==== Praxis: DB-Benutzer |
| <WRAP round 80% box> | <WRAP round 80% box> | ||
| - | **1. Als root verbinden** (WebStorm SQL-Konsole) | ||
| - | **2. Benutzer anlegen** | ||
| <code sql> | <code sql> | ||
| - | CREATE USER IF NOT EXISTS 'bob' | + | -- als root anlegen: |
| - | </code> | + | CREATE USER IF NOT EXISTS 'caro_admin' |
| + | CREATE USER IF NOT EXISTS ' | ||
| + | CREATE USER IF NOT EXISTS ' | ||
| + | -- optional: App/Integration-User (minimal) | ||
| + | CREATE USER IF NOT EXISTS ' | ||
| - | **3. Benutzerliste (kurz)** | + | -- Sichtprüfung |
| - | <code sql> | + | |
| SELECT user, host FROM mysql.user ORDER BY user, host; | SELECT user, host FROM mysql.user ORDER BY user, host; | ||
| </ | </ | ||
| + | </ | ||
| - | **4. Testlogin in zweiter Verbindung** (als '' | + | <WRAP tip round 80% center> |
| + | **Wichtig:** Ein neu angelegter Benutzer hat **keine** Rechte. | ||
| + | Rechte/ | ||
| + | </ | ||
| + | |||
| + | ===== 2) DROP USER – Benutzer entfernen ===== | ||
| + | <WRAP round 80% box center> | ||
| + | **Syntax:** <code sql>DROP USER [IF EXISTS] | ||
| + | Entfernt den Benutzer **und** seine Grants. | ||
| + | </ | ||
| + | |||
| + | ==== Beispiele ==== | ||
| + | <WRAP round 80% box> | ||
| <code sql> | <code sql> | ||
| - | -- Verfügbar ohne Rechte: | + | -- Übungs-Account nicht mehr benötigt: |
| - | SHOW DATABASES; | + | DROP USER IF EXISTS ' |
| + | |||
| + | -- mehrere auf einmal | ||
| + | DROP USER ' | ||
| </ | </ | ||
| - | Erwartung: nur '' | ||
| </ | </ | ||
| - | < | + | ==== Aktive Verbindungen zuerst trennen (falls nötig) ==== |
| - | **Wichtig: | + | <WRAP round 80% box> |
| + | <code sql> | ||
| + | -- wer ist verbunden? | ||
| + | SHOW PROCESSLIST; | ||
| + | |||
| + | -- z. B. Prozess 21 beenden und dann löschen | ||
| + | KILL 21; | ||
| + | DROP USER ' | ||
| + | </ | ||
| </ | </ | ||