Mit der Standard- oder Advanced-Lizenz verfügbar.
PostgreSQL verwendet Rollen für die Anmeldung am Datenbank-Cluster und an den Datenbanken. Einzelne Benutzer werden als Anmelderollen bezeichnet. Zudem muss der Datenbankadministrator für alle Anmeldebenutzerrollen, die Eigentümer von Objekten in der Geodatabase sind, ein Schema in der Datenbank erstellen, in der die Geodatabase gespeichert ist. Um PostgreSQL mit ArcGIS zu verwenden, muss das Schema den gleichen Namen wie die Anmelderolle haben und sich in deren Besitz befinden.
Mit dem Werkzeug Datenbankbenutzer erstellen kann der Datenbankadministrator eine Anmelderolle hinzufügen, die Tabellen und Feature-Classes erstellen kann. Das Werkzeug erstellt eine Anmeldebenutzerrolle mit Datenbankauthentifizierung im PostgreSQL-Datenbank-Cluster sowie ein passendes Schema für den Benutzer in der angegebenen Datenbank und gewährt der Öffentlichkeit usage-Berechtigungen für das neue Schema.
Alternativ kann der Datenbankadministrator mit einer PostgreSQL-Client-Anwendung wie pgAdmin oder PL/pgSQL Anmeldebenutzerrollen erstellen. Sie müssen diese Anwendungen verwenden, um eine Anmelderolle zu erstellen, die kein Schema besitzt und deshalb keine Objekte in der Geodatabase erstellen kann, oder um eine Anmelderolle zu erstellen, die einer SSPI-Anmeldung (Security Support Provider Interface) oder einer LDAP-Anmeldung (Lightweight Directory Access Protocol) zugeordnet ist.
Der Datenbankadministrator kann auch Gruppenrollen erstellen, denen die Anmelderollen hinzugefügt werden, und Berechtigungen für die Gruppe festlegen, die für alle zugehörigen Anmeldebenutzerrollen gelten. Verwenden Sie das Werkzeug oder Skript Rolle erstellen, um Gruppenrollen zu erstellen. Alternativ können Sie dazu SQL verwenden.
Hinweis:
Jede Anmeldebenutzerrolle in der Gruppe, die Eigentümer von Objekten in der Geodatabase ist, muss über ein eigenes passendes Schema verfügen. Sie können kein Schema für die Gruppenrolle erstellen.
Verwenden von Geoverarbeitung zum Hinzufügen eines Benutzers, der Datenbankobjekte erstellen kann
Führen Sie das Werkzeug Datenbankbenutzer erstellen in ArcGIS Pro aus, oder rufen Sie die ArcPy-Funktion management.CreateDatabaseUser in einem Python, um eine Anmeldebenutzerrolle zu erstellen, die Tabellen, Feature-Classes und Sichten erstellen kann.
Sie müssen die Verbindung mit der Datenbank mit einer Rolle mit Superuser-Status herstellen, um das Werkzeug Datenbankbenutzer erstellen oder die management.CreateDatabaseUser-Funktion ArcPy ausführen zu können.
Verwenden des Werkzeugs Datenbankbenutzer erstellen
Führen Sie die folgenden Schritte aus, um mit dem Werkzeug Datenbankbenutzer erstellen eine Anmeldebenutzerrolle in PostgreSQL zu erstellen:
- Starten Sie ArcGIS Pro.
- Stellen Sie mit einer Rolle mit PostgreSQL-Superuser-Berechtigung eine Verbindung mit der Datenbank oder Geodatabase her.
- Öffnen Sie das Werkzeug Datenbankbenutzer erstellen.
Das Werkzeug befindet sich in der Toolbox "Data Management" im Toolset "Geodatabase-Verwaltung".
- Geben Sie die Datenbankverbindung für den Parameter Eingabe-Datenbankverbindung an.
- Geben Sie einen Namen für die Anmeldebenutzerrolle und das Schema an, die von dem Werkzeug erstellt werden.
- Geben Sie ein Kennwort für den Datenbankbenutzer an.
- Wenn Sie bereits über eine Gruppenrolle verfügen, der dieser Benutzer als Mitglied angehören soll, geben Sie die Gruppenrolle an.
- Klicken Sie auf Ausführen.
Die Datenbank enthält nun einen Benutzer, der Tabellen, Feature-Classes und Sichten erstellen kann.
Der neue Benutzer kann eine Verbindung mit der Datenbank herstellen, um Datasets zu erstellen. Anschließend kann er anderen Benutzern Berechtigungen für sie erteilen. Anweisungen dazu finden Sie unter Gewähren und Widerrufen von Dataset-Berechtigungen in Datenbanken und Enterprise-Geodatabases.
Ausführen eines Python-Skripts
Führen Sie die folgenden Schritte aus, um ein Skript für die Erstellung von Anmeldebenutzerrollen zu erzeugen:
- Erstellen Sie eine Textdatei auf einem ArcGIS-Client-Computer, und kopieren Sie einen der folgenden Codeblöcke in die Datei.
Ändern Sie den Code, sodass Ihre standortspezifischen Informationen berücksichtigt werden.
In den Beispielen wird davon ausgegangen, dass Sie über eine vorhandene Datenbankverbindungsdatei verfügen, mit der eine Verbindung als Superuser im PostgreSQL-Datenbank-Cluster hergestellt wird. Falls dies nicht der Fall ist, erstellen Sie eine Verbindungsdatei, bevor Sie das Skript ausführen.
# Name: createdatabaseuser_exampleW.py # Description: Uses existing database connection file # on a Windows computer to create a database user in PostgreSQL. # Import arcpy module import arcpy # Provide a database connection file for the PostgreSQL administrator user. connection = "C:\\ArcGIS\connection_files\<Connection file>.sde" # Process: Create database user that can create data. arcpy.CreateDatabaseUser_management(connection, "DATABASE_USER", "dbuser", "t3mpor@rypL@ceholder1")# Name: createdatabaseuser_exampleL.py # Description: Uses existing database connection file # on a Linux computer to create a database user in PostgreSQL. # Import arcpy module import arcpy # Provide a database connection file for the PostgreSQL administrator user. connection = "<user>/connections/<Connection_file>.sde" # Process: Create database user that can create data. arcpy.CreateDatabaseUser_management(connection, "DATABASE_USER", "dbuser", "t3mpor@rypL@ceholder1") - Speichern Sie die Datei mit der Erweiterung .py.
- Führen Sie das Skript auf einem Computer aus, auf dem ArcGIS Pro ( Standard oder Advanced) oder ArcGIS Server installiert ist.
Weitere Informationen zum Ausführen von Python auf einem ArcGIS Server-Computer finden Sie unter ArcGIS Server und ArcPy.
Die Datenbank enthält nun eine Anmeldebenutzerrolle, die Tabellen, Feature-Classes und Sichten erstellen kann.
Der neue Benutzer kann eine Verbindung mit der Datenbank herstellen, um Datasets zu erstellen. Anschließend kann er anderen Benutzern Berechtigungen für sie erteilen. Anweisungen dazu finden Sie unter Gewähren und Widerrufen von Dataset-Berechtigungen in Datenbanken und Enterprise-Geodatabases.
Erstellen von Anmeldungen mit SQL
Sie können SQL verwenden, um Rollen zu erstellen. Wenn Sie dies für eine Geodatabase in PostgreSQL durchführen, müssen Sie sicherstellen, dass die öffentliche Gruppe oder die spezifischen Rollen über Berechtigungen zum Erstellen temporärer Tabellen verfügen. Dies ist für alle Benutzer erforderlich, auch für diejenigen, die keine anderen Datenbankobjekte erstellen.
Weitere Informationen zu erforderlichen Berechtigungen nach Benutzertyp finden Sie unter Berechtigungen für Geodatabases in PostgreSQL.
Erstellen von Rollen
In den folgenden Schritten wird beschrieben, wie mit psql Gruppenrollen erstellt werden, um die Verwaltung von Berechtigungen zu vereinfachen und Anmelderollen zu erstellen, die den Gruppenrollen angehören.
- Melden Sie sich bei psql als Benutzer mit der Berechtigung zum Erstellen anderer Rollen im Datenbank-Cluster an.
Dabei kann es sich um eine Anmeldung mit Superuser-Status oder der createrole-Berechtigung handeln.
- Erstellen Sie mit dem Befehl create role Anmeldegruppen.
In diesem Beispiel werden Gruppenrollen erstellt, um Berechtigungen für Daten-Viewer, Daten-Editor und Daten-Ersteller zu gewähren.
CREATE ROLE owners NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT; CREATE ROLE editors NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT; CREATE ROLE viewers NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT; - Gewähren Sie jeder Gruppenrolle die erforderlichen Berechtigungen basierend auf den Aktionen, die die Gruppenmitglieder ausführen müssen.
Weitere Informationen zum Gewähren von Berechtigungen für Rollen in einer Geodatabase finden Sie unter Berechtigungen für Geodatabases in PostgreSQL. Wenn die Datenbank keine Geodatabase enthält, finden Sie weitere Informationen unter Berechtigungen für die Verwendung von ArcGIS mit einer PostgreSQL-Datenbank.
- Erstellen Sie eine Anmelderolle mit einem passenden Schema zum Besitzen von Datenbankobjekten, und platzieren Sie diese Anmelderolle in der Gruppenrolle "owners".
CREATE ROLE geodataowner1 LOGIN ENCRYPTED PASSWORD '' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT IN ROLE owners; CREATE SCHEMA geodataowner1 AUTHORIZATION geodataowner1;Ändern Sie den Namen für die Anmelderolle und das passende Schema, und führen Sie die Anweisungen erneut für jede Anmeldung aus, die Datenbankobjekte erstellt.
- Erstellen Sie Anmelderollen, die Mitglieder der Gruppe "editors" sind.
In diesem Beispiel wird eine Anmelderolle (editor1) mit einem verschlüsselten Kennwort erstellt. Die Rolle verfügt nicht über den Superuser-Status und kann weder Datenbanken noch Rollen im Datenbank-Cluster erstellen. Sie wurde jedoch zum Mitglied der Gruppenrolle "editors" gemacht und übernimmt die Berechtigungen dieser Gruppenrolle.
Ändern Sie den Anmelderollennamen, und führen Sie die Anweisung erneut aus, um weitere Anmelderollen zu erstellen, die Daten in der Geodatabase bearbeiten können.CREATE ROLE editor1 LOGIN ENCRYPTED PASSWORD '' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT IN ROLE editors; - Erstellen Sie Anmelderollen, die Mitglieder der Gruppe "viewers" sind.
In diesem Beispiel wird eine Anmelderolle (reader1) mit einem verschlüsselten Kennwort erstellt. Die Rolle verfügt nicht über den Superuser-Status und kann weder Datenbanken noch Rollen im Datenbank-Cluster erstellen. Sie wurde jedoch zum Mitglied der Gruppenrolle "viewers" gemacht und übernimmt die Berechtigungen dieser Gruppenrolle.
Ändern Sie den Anmelderollennamen, und führen Sie die Anweisung erneut aus, um weitere Anmelderollen zu erstellen, die nur Daten in der Geodatabase anzeigen können.CREATE ROLE reader1 LOGIN ENCRYPTED PASSWORD '' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT IN ROLE viewers; - Gewähren Sie den Anmeldegruppen "viewers" und "editors" die Berechtigung usage für die in Schritt 4 erstellten Schemas.
Mit der Berechtigung usage erhalten Mitglieder der Gruppe Zugriff auf Daten in den Schemas. Ohne dies können Datenbesitzer den Mitgliedern der Gruppenrollen keine Berechtigungen für einzelne Datasets gewähren.
GRANT USAGE ON SCHEMA geodataowner1 TO viewers; GRANT USAGE ON SCHEMA geodataowner1 TO editors; - Wenn Sie diese Anmeldungen für eine Geodatabase erstellen und die Berechtigungen für das Schema "sde" geändert haben, sodass die öffentliche Gruppe keine usage-Berechtigungen dafür hat, gewähren Sie den Gruppen "owners", "editors" und "viewers" die Berechtigung usage für das Schema "sde".
GRANT USAGE ON SCHEMA sde TO owners; GRANT USAGE ON SCHEMA sde TO editors; GRANT USAGE ON SCHEMA sde TO viewers;
Die Datenbank verfügt nun über einen oder mehrere Benutzer, die Daten erstellen, einen oder mehrere Benutzer, die Daten bearbeiten, und einen oder mehrere Benutzer, die Daten anzeigen.
Jeder Benutzer muss eine Verbindung zu der Datenbank erstellen.
Sobald die Datenbesitzer Datasets in der Datenbank oder Geodatabase erstellen, können sie ArcGIS-Werkzeuge verwenden, um der Gruppe "viewers" die Berechtigung select für die Datasets und der Gruppe "editors" die Berechtigungen select, insert, update und delete für die Datasets zu gewähren. Anweisungen dazu finden Sie unter Gewähren und Widerrufen von Dataset-Berechtigungen in Datenbanken und Enterprise-Geodatabases.