Erstellen einer PostgreSQL-Datenbank und eines Benutzers "sde" unter Linux
In der Linux-Installation von ArcSDE wird ein Skript (setup_pgdb.sde) zum Erstellen des PostgreSQL-Tablespace, der Datenbank, des Benutzers "sde" und dessen Schema unter Red Hat Linux zur Verfügung gestellt. Sie können das auf dem Installationsmedium bereitgestellte Skript verwenden oder diese Schritte manuell ausführen. Weitere Informationen zur PostgreSQL-Installation finden Sie in der PostgreSQL-Dokumentation.
Durch das Skript "setup_pgdb.sde" wird zudem die Programmiersprache PL/pgSQL installiert. Die manuelle Installation von PL/pgSQL wird unter Installieren von PL/pgSQL unter Linux erklärt.
Sie können in PostgreSQL Objektnamen in Groß- und Kleinschreibung oder nur in Großschreibung zwar speichern, indem Sie den Namen in Anführungszeichen einschließen, die Verwendung dieser Namen in einer ArcSDE-Geodatabase ist jedoch nicht möglich. Verwenden Sie daher keine Datenbank-, Tablespace-, Benutzer- oder Schemanamen mit Groß- und Kleinschreibung.
-
Melden Sie sich bei psql als Superuser "postgres" an, und erstellen Sie den ArcSDE-Administrator. Der erstellte Benutzer muss den Namen "sde" erhalten, Sie können jedoch ein beliebiges Kennwort auswählen.
CREATE ROLE sde LOGIN PASSWORD <password> SUPERUSER NOINHERIT CREATEDB;
-
Wenn Sie die für die ArcSDE-Geodatabase verwendete Datenbank in einem anderen als dem Standard-Tablespace (pg_default) speichern möchten, erstellen Sie einen neuen Tablespace in einem leeren Verzeichnis.
Im folgenden Beispiel wird ein Tablespace mit dem Namen "sde1" im Verzeichnis "sde" auf einem 32-Bit-Server erstellt. Der Benutzer "sde" ist Besitzer des Tablespace.
CREATE TABLESPACE sde1 OWNER sde LOCATION '/var/lib/pgsql/data/sde';
Hinweis:PostgreSQL setzt voraus, dass der Tablespace in einem leeren Verzeichnis erstellt wird. Wenn Sie ein Verzeichnis angeben, das bereits Dateien enthält, schlägt die Erstellung des Tablespace fehl.
-
Erstellen Sie eine Datenbank, und gewähren Sie dem Benutzer "sde" vollständigen Zugriff auf diese.
Der Benutzer "sde" benötigt vollständigen Zugriff, um die Geodatabase erstellen zu können.
Hinweis:Wenn Sie beabsichtigen, den PostGIS-Geometrietyp für die Datenspeicherung zu verwenden, müssen Sie die Datenbank mithilfe der PostGIS-Vorlage erstellen oder eine vorhandene Datenbank mithilfe eines von PostGIS bereitgestellten Skripts für PostGIS-Geometrie aktivieren.
Der Name einer Datenbank, die zum Speichern einer Geodatabase verwendet wird, darf keine Sonderzeichen enthalten.
In diesem Beispiel gehört die Datenbank "agency" dem Benutzer "sde". Sie verwendet die UTF8-Zeichencodierung und ist im Tablespace "sde1" gespeichert.
CREATE DATABASE agency OWNER sde ENCODING 'UTF8' TABLESPACE sde1; GRANT ALL ON DATABASE agency TO sde;
-
Gewähren Sie der öffentlichen Gruppe bzw. spezifischen Rollen und Gruppen Nutzungsberechtigungen, damit die Benutzer auf die Datenbank zugreifen können.
GRANT USAGE ON DATABASE agency TO public;
-
Melden Sie sich als Superuser "postgres" an der Datenbank an, um das Schema des Benutzers "sde" zu erstellen. In diesem Schema wird das ArcSDE-Geodatabase-Repository gespeichert. Der Name des Schemas muss "sde" lauten.
\c agency CREATE SCHEMA sde AUTHORIZATION sde;
-
Gewähren Sie dem Benutzer "sde" umfassende Rechte auf das Schema "sde".
GRANT ALL ON SCHEMA sde TO sde;
-
Gewähren Sie der öffentlichen Gruppe bzw. spezifischen Rollen und Gruppen Nutzungsberechtigungen, damit diese auf das Schema "sde" zugreifen können.
Alle Benutzer, die die Geodatabase verwenden, benötigen Nutzungsberechtigungen für das Schema "sde".
GRANT USAGE ON SCHEMA sde TO public;
-
Wenn Sie den PostGIS-Geometrietyp verwenden, müssen Sie dem Benutzer "sde" zudem die Berechtigungen SELECT, INSERT, UPDATE und DELETE für die Tabelle "public.geometry_columns" gewähren.
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE public.geometry_columns TO sde;
-
Gewähren Sie dem Benutzer "sde" bei Verwendung des PostGIS-Geometrietyps außerdem die Berechtigung SELECT für die Tabelle "public.spatial_ref_sys".
GRANT SELECT ON TABLE public.spatial_ref_sys TO sde;
Erstellen Sie weitere Benutzer, die auf Daten in der Datenbank zuzugreifen und diese bearbeiten können.
ArcSDE enthält eine Datei mit SQL-Anweisungen für die Erstellung weiterer Benutzer und zugehöriger Schemas. Sie finden diese Datei (roles_schemas_privileges.txt) nach der Installation von ArcSDE im Verzeichnis $SDEHOME > tools > postgres.