datenbank:postgresql_12
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| datenbank:postgresql_12 [2022-05-04 00:07:50] – [Beispiel] manfred | datenbank:postgresql_12 [2022-05-29 01:28:41] (aktuell) – [Syntax gegen SQL-Injektion] manfred | ||
|---|---|---|---|
| Zeile 121: | Zeile 121: | ||
| > createuser mmroot | > createuser mmroot | ||
| - | Benutzer anzeigen | + | Benutzer anzeigen: |
| > su - postgres -c 'echo " | > su - postgres -c 'echo " | ||
| - | Datenbank " | + | Datenbank " |
| > su - postgres -c 'echo " | > su - postgres -c 'echo " | ||
| CREATE DATABASE | CREATE DATABASE | ||
| Zeile 131: | Zeile 131: | ||
| > su - postgres -c 'psql postgres -l' | > su - postgres -c 'psql postgres -l' | ||
| - | Tabelle " | + | Tabelle " |
| > su - postgres -c 'echo " | > su - postgres -c 'echo " | ||
| CREATE TABLE | CREATE TABLE | ||
| - | Tabellen anzeigen | + | Tabellen anzeigen: |
| - | > su - postgres | + | > su - postgres |
| - | $ echo " | + | |
| | | ||
| ----------- | ----------- | ||
| video | video | ||
| (1 row) | (1 row) | ||
| + | |||
| + | Tabelleninhalt anzeigen: | ||
| + | > su - postgres -c "echo \" | ||
| + | id | inode | quersumme | dateiname | ||
| + | ----+-------+-----------+----------- | ||
| + | (0 rows) | ||
| + | |||
| + | testweise einen Datensatz in die Tabelle eintragen: | ||
| + | > su - postgres -c "echo \" | ||
| + | INSERT 0 1 | ||
| + | |||
| + | Testdatensatz anzeigen: | ||
| + | > su - postgres -c "echo \" | ||
| + | id | inode | quersumme | dateiname | ||
| + | ----+---------+-----------+----------- | ||
| + | 1 | 1234567 | asdfghjkl | Film.mkv | ||
| + | (1 row) | ||
| + | |||
| + | Tabelleninhalt zählen: | ||
| + | > su - postgres -c "echo \" | ||
| + | | ||
| + | ------- | ||
| + | 1 | ||
| + | (1 row) | ||
| + | |||
| + | Tabelle " | ||
| + | > su - postgres -c 'echo "DROP TABLE video;" | ||
| + | DROP TABLE | ||
| + | |||
| + | Tabelle " | ||
| + | > su - postgres -c 'echo " | ||
| + | CREATE TABLE | ||
| + | |||
| + | |||
| + | ==== Syntax gegen SQL-Injektion ==== | ||
| + | |||
| + | Um SQL-Injektion zu verhindern, dürfen die Variablen nicht durch '' | ||
| + | Um sie dennoch an den Datenbank-Client übergeben zu können, werden die Optionen '' | ||
| + | |||
| + | <code bash> | ||
| + | VERZEICHNIS=" | ||
| + | DATEINAME=" | ||
| + | |||
| + | echo " | ||
| + | -v DATEIGROESSE="' | ||
| + | </ | ||
| + | |||
| + | Die doppelte Einfassung, einmal mit doppelten und dann noch einmal mit einfachen Hochkommas, hat den Sinn, dass die doppelten Hochkommas für die SHELL sind und die einfachen Hochkommas für SQL. | ||
| + | |||
| + | Die ersten beiden Zeilen im Beispiel-Kode, | ||
| + | |||
| + | Zum Beispiel muß der Dateiname '' | ||
| + | |||
| + | ein weiteres Beispiel: | ||
| + | > echo " | ||
/home/http/wiki/data/attic/datenbank/postgresql_12.1651622870.txt · Zuletzt geändert: von manfred
