postgres

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
postgres [18/04/2025 - 10:08] – [Templates und UTF8 encoding] adminpostgres [24/04/2025 - 10:51] (aktuell) – [Datenbank duplizieren] thommie_netzwissen.de
Zeile 28: Zeile 28:
 WER greift gerade auf die DB zu? WER greift gerade auf die DB zu?
  
-<code+<code>SELECT usename, datname, state FROM pg_stat_activity WHERE usename='discourse2';
- <font inherit/monospace;;inherit;;#000000background-color:#ffffff;>SELECT usename, datname, state FROM pg_stat_activity WHERE usename='discourse'</font>+
  
 </code> </code>
  
-zuerst alle aktiven Verbindungen trennen+Alle aktiven Verbindungen zu dieser DB trennen
  
 <code> <code>
 SELECT pg_terminate_backend(pid) SELECT pg_terminate_backend(pid)
 FROM pg_stat_activity FROM pg_stat_activity
-WHERE datname = 'discourse' AND leader_pid IS NULL;+WHERE datname = 'discourse2' AND leader_pid IS NULL;
  
 </code> </code>
Zeile 48: Zeile 47:
  
 </code> </code>
 +
  
 ===== Schemata ===== ===== Schemata =====
Zeile 57: Zeile 57:
 dt listet alle Tabellen in einer Datenbank auf dt listet alle Tabellen in einer Datenbank auf
  
-Alle Tabellen in einer DB löschen +Nach "\c discourse2": alle Tabellen in einer DB löschen
-<code>+
  
 +<code>
 DO $$ DECLARE DO $$ DECLARE
   r RECORD;   r RECORD;
Zeile 71: Zeile 71:
  
 q beendet die Verbindung q beendet die Verbindung
 +
  
 ===== Benutzeraktionen ===== ===== Benutzeraktionen =====
  
 \du listet alle User \du listet alle User
 +
 +neuen User anlegen ("ROLE")
 <code> <code>
  
 +postgres=# CREATE ROLE discourse2;
 +CREATE ROLE
 +postgres=#
 +
 +</code>
 +
 +Passwort setzen
 +
 +<code>
 ALTER ROLE [username] WITH PASSWORD 'xxxx'; ALTER ROLE [username] WITH PASSWORD 'xxxx';
  
 </code> </code>
  
-Zugriffsrechte auf eine Datenbank erteilen+==== GRANT Statement ==== 
 + 
 +nur login
  
 <code> <code>
 +ALTER ROLE discourse2 LOGIN;
 +
 +</code>
 +
 +Weitere Privilegien:
 +
 +<code>
 +GRANT privilege_list | ALL
 +ON  table_name
 +TO  role_name;
 +
 +</code>
 +
 +privilege_list kann ''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-select|SELECT'']]'' , ''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-insert|INSERT'']]'',''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-update|UPDATE'']]'', ''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-delete|DELETE'']]'',''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-truncate-table|TRUNCATE'']]''etc. sein. Mit ALL geht alles (lesen, schreiben, löschen usw.
 +<code>
 +
 GRANT ALL ON DATABASE [dbname] TO [username]; GRANT ALL ON DATABASE [dbname] TO [username];
  
Zeile 95: Zeile 125:
 <code> <code>
 drop user IF EXISTS dendrite; drop user IF EXISTS dendrite;
 +
 +</code>
 +
 +===== Tabellen-Aktionen =====
 +
 +Alle Tabellen löschen
 +
 +<code>
 +DO $$
 +DECLARE
 +    r RECORD;
 +BEGIN
 +    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public') LOOP
 +   EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
 +    END LOOP;
 +END $$;
 +
 +</code>
 +
 +check
 +<code>
 +
 +SELECT tablename FROM pg_tables WHERE schemaname = 'public';
 +
 +</code>
 +
 +===== Daten-Aktionen =====
 +
 +<code>
 +do $$ declare
 +   r record;
 +begin
 +   for r in (select tablename from pg_tables where schemaname = 'my-schema-name') loop
 +   execute 'drop table if exists ' || quote_ident(r.tablename) || ' cascade';
 +   end loop;
 +end $$;
 +
 +</code>
 +
 +Komplette Datenbank löschen
 +<code>
 +
 +drop DATABASE onlyoffice;
  
 </code> </code>
Zeile 168: Zeile 241:
  
 </code> </code>
- 
-====== Alte Daten löschen ====== 
- 
-Datenbank 
- 
-<code> 
-drop DATABASE onlyoffice; 
- 
-</code> 
- 
-Postgres und UTF8 
- 
-Standardmässig werden neue Datenbanken mit der Zeichenkondierung SQL_ASCII angelegt. Das passt meistens, aber nicht immer. Mit dieser Methode werden DBs mit UTF8 Kodierung angelegt: 
- 
-[[https://www.shubhamdipt.com/blog/how-to-change-postgresql-database-encoding-to-utf8/|https://www.shubhamdipt.com/blog/how-to-change-postgresql-database-encoding-to-utf8/]] 
  
 ===== Templates und UTF8 encoding ===== ===== Templates und UTF8 encoding =====
  • postgres.1744970934.txt.gz
  • Zuletzt geändert: 18/04/2025 - 10:08
  • von admin