Schemata

../../_images/schnecke.jpg

« Übersicht: Manage PostgreSQL

Ein Schemata dienen der Abgrenzung und Gruppierung von Objekten. In andren Kontexten spricht man auch von Namensräumen, um Namenskonflikte zu vermeiden. In XML und anderen Sprachen, wird der Begriff namespace verwendet.

https://www.postgresql.org/docs/9.1/static/ddl-schemas.html

Alle Schemata anzeigen

create schema mein_schema;

Alle Schemata anzeigen

select nspname
from pg_catalog.pg_namespace;

Suchpfad für Objekte

SHOW search_path;

  search_path
-----------------
"$user", public

Suchpfad ändern

SET search_path TO myschema;

Schema mit allen Objekten löschen

DROP SCHEMA myschema CASCADE;

Zugriff auf Schema erlauben

GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO PUBLIC;

Zu einem späteren Zeitpunkt hinzugefügte Relationen haben nicht die gleichen Zugriffsrechte, wie die vorhanden Relationen.

Dies lässt sich wie folgt korrigieren:

ALTER DEFAULT PRIVILEGES IN SCHEMA myschema
GRANT SELECT ON TABLES TO PUBLIC;

Schemen-Name ändern


Relation verschieben

ALTER TABLE cust
SET SCHEMA anotherschema;