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;