2013-10-05 7 views
5

Im Prozess der Erstellung der PostgreSQL-Datenbank „Landkarte“ zu erstellen, die die postgis Erweiterung verwendet, über CREATE EXTENSION postgis;, user „Kartograph“ erhält folgende Fehlermeldung:Postgres Erweiterung postgis Fehler

permission denied to create extension "postgis" 
HINT: Must be superuser to create this extension. 

Aber user „Kartograph“ ist der Besitzer die Datenbank von sudo -u postgres psql über den Befehl wie folgt angegeben:

CREATE DATABASE map OWNER mapmaker; 
GRANT ALL PRIVILEGES ON DATABASE map TO mapmaker; 

Sobald mapmaker ist ein Super-User auf der Benutzerebene nicht mehr ich die Fehlermeldung und die Erweiterung erstellt wird, so verstehe ich alles, was ich tun muß, ist die zul einstellen mapmaker über den postgres-Benutzer an den Superuser, aber ich möchte wissen, warum dies der Fall ist, wenn dem Mapmaker alle Berechtigungen für die Datenbankkarte gewährt wurden? Werden Erweiterungen anders behandelt? Um Erweiterungen zu verwenden, muss ein Benutzer ein Superuser auf Benutzerebene sein oder können die Berechtigungen auf Datenbankebene zugewiesen werden?

Ich sah cannot create extension without superuser role aber die Antwort auf die Frage nicht erklären, warum und leider habe ich nicht genug Punkte zu kommentieren, daher die Frage.

PostgreSQL 9.1.9 PostGIS 2.0.3

Antwort

6

In Packaging Related Objects into an Extension, sagt der Arzt, dass eine Verlängerung eines superuser Parameter hat, die, wenn sie auf true eingestellt, dass die Erweiterung installieren oder ein Upgrade nur ein Super-User anzeigt, kann.

Das ist der Fall von PostGIS, vermutlich weil es in der C-Sprache implementiert ist, gibt es keine Begrenzung dessen, was es für das gesamte Cluster- und Datenverzeichnis tun kann, nicht nur für eine Datenbank. Der Superuser verfügt über Berechtigungen für den gesamten Cluster, die der Besitzer einer einzelnen Datenbank nicht besitzt.

So wie das Superuser-Privileg erforderlich, um eine einzelne Funktion in der C-Sprache zu erstellen, ist es sinnvoll, dass die gleiche Regel aus dem gleichen Grunde auf die gesamte postgis Verlängerung gelten würde.

Verwandte Themen