Mit der Standard- oder Advanced-Lizenz verfügbar.
Wenn Sie möchten, dass andere Datenbankbenutzer die Inhalte beliebiger Daten in einer Datenbank anzeigen oder ändern können, müssen Sie ihnen die Berechtigung dazu erteilen.
Sie können das Dialogfeld Berechtigungen in ArcMap, das Geoverarbeitungswerkzeug Berechtigungen ändern in ArcMap bzw. ArcGIS Pro oder die Funktion ChangePrivileges_management in einem Python-Skript verwenden, um festzulegen, welche Berechtigungen ein Benutzer oder eine Gruppe für ein bestimmtes Dataset hat.
Sie können lediglich SELECT-Berechtigungen zuweisen, d. h., dass der Benutzer den Inhalt eines Datasets lesen und auswählen, jedoch nicht ändern kann. Sie können auch Berechtigungen zum Aktualisieren, Einfügen und Löschen gewähren, sodass der Benutzer den Inhalt eines Datasets sowohl lesen als auch ändern kann.
Für das Erteilen und Widerrufen von Berechtigungen für Daten in einer Datenbank oder Geodatabase in ArcGIS gelten die folgenden Regeln:
- Nur der Besitzer einer Tabelle kann Berechtigungen ändern.
- Nur der Besitzer einer Tabelle kann das Dataset entfernen oder seine Definition ändern. Selbst wenn einem anderen Besitzer INSERT-, UPDATE- und DELETE-Berechtigungen für das Dataset gewährt werden, kann dieser Benutzer das Schema des Datasets nicht ändern.
- Wenn Sie einem Benutzer die INSERT-, UPDATE- oder DELETE-Berechtigungen gewähren, müssen Sie auch die SELECT-Berechtigung erteilen. Der Benutzer muss in der Lage sein, das Dataset zu lesen, bevor er es bearbeiten kann.
- Die Rollen für "dbo" und "db_owner" werden nicht in der Liste "Benutzer/Rolle" des Dialogfeldes Berechtigungen für SQL Server-Datenbanken angezeigt. Diese Benutzer haben automatisch vollständige Berechtigungen für alle Daten, und Sie können diese Berechtigungen nicht widerrufen.
- PostgreSQL-Anmelderollen oder -Gruppen, denen Superuser-Status in der Datenbank gewährt wurden, werden nicht in der Liste "Benutzer/Rolle" des Dialogfeldes Berechtigungen angezeigt. Diese Benutzer haben automatisch vollständige Berechtigungen für alle Daten, und Sie können diese Berechtigungen nicht widerrufen.
- Sie können die Berechtigungen eines Benutzers immer nur für ein Dataset über das Dialogfeld Berechtigungen ändern. Um Berechtigungen für mehrere Datasets gleichzeitig zu ändern, verwenden Sie stattdessen das Geoverarbeitungswerkzeug Berechtigungen ändern oder stattdessen die Python-Funktion.
- Da zum Widerrufen von Berechtigungen eine exklusive Sperre für das Dataset erforderlich ist, können Sie die Berechtigungen eines Dataset-Benutzers nicht widerrufen, wenn dieser mit dem Dataset verbunden ist.
Die folgenden Regeln gelten nur für das Erteilen und Widerrufen von Berechtigungen für Datasets in einer Geodatabase:
- Auf alle Feature-Classes eines Feature-Datasets müssen dieselben Benutzerberechtigungen angewendet werden.
- Wenn einer Feature-Class oder einer Tabelle, die an einer Beziehungsklasse beteiligt ist, Berechtigungen erteilt werden, müssen diese sowohl der Ursprungs- als auch der Ziel-Class erteilt werden. Wenn sich die Ursprungs- und Ziel-Feature-Classes innerhalb des gleichen Feature-Datasets befinden, gelten für sie dieselben Berechtigungen, da Berechtigungen auf Feature-Dataset-Ebene gewährt werden. Wenn sich die Ursprungs- und Ziel-Classes jedoch nicht im selben Feature-Dataset befinden, müssen Sie sicherstellen, dass sowohl den Ursprungs- als auch den Ziel-Classes die richtigen Berechtigungen erteilt werden. Wenn die Kardinalität der Beziehungsklasse Attributiert oder Viele-zu-Viele lautet, werden Berechtigungen automatisch an die Zwischentabelle weitergegeben, wenn Sie Berechtigungen der Ursprungsklasse zuweisen.
- Wenn das Dataset nicht versioniert ist, können Sie die Berechtigungen zum Aktualisieren, Einfügen und Löschen einzeln im Dialogfeld Berechtigungen gewähren und widerrufen. Sie können einem Benutzer beispielsweise SELECT- und UPDATE-Berechtigungen erteilen, die es dem Benutzer ermöglichen, eine Verbindung zum Dataset herzustellen und vorhandene Features zu ändern, es jedoch nicht zulassen, dass der Benutzer neue Features hinzufügt oder vorhandene Features löscht.
- Wenn das Dataset als versioniert registriert ist, müssen die Berechtigungen, die einem Benutzer das Ändern eines Datasets (UPDATE, INSERT und DELETE) erlauben, als Gruppe gewährt und widerrufen werden.
- Wenn das Dataset als versioniert registriert ist, muss der Geodatabase-Administrator uneingeschränkte Berechtigungen für das Dataset haben. Daher können Sie keine Berechtigungen des Geodatabase-Administrators für versionierte Datasets widerrufen.
Verwenden Sie eine der folgenden Methoden, um Berechtigungen für Datasets, die Sie besitzen, zu gewähren oder zu wiederrufen:
- Dialogfeld "Berechtigungen" – Im Dialogfeld Berechtigungen können Sie anzeigen, welche Berechtigungen ein Benutzer oder eine Gruppe für ein bestimmtes Dataset hat. Sie können Berechtigungen für das Dataset außerdem mehreren Benutzern oder Gruppen gleichzeitig gewähren.
- Das Werkzeug Berechtigungen ändern – Sie können Berechtigungen für mehrere Datasets für einen Benutzer oder eine Gruppe gewähren, wenn Sie das Werkzeug Berechtigungen ändern verwenden.
- Python-Skript – Python-Skripte können auf Linux-Computern ausgeführt werden, auf denen ArcGIS for Server installiert ist. Berechtigungen können für mehrere Datasets geändert werden.
Verwenden des Dialogfelds "Berechtigungen"
Öffnen Sie das Dialogfeld Berechtigungen über das Kontextmenü einer Datenbankverbindung im Kataloginhaltsverzeichnis. In diesem Dialogfeld können Sie eine Auswahl aus einer Liste von Benutzern und Gruppen vornehmen, denen Sie Berechtigungen gewähren können. In diesem Dialogfeld können Sie die Berechtigungen "INSERT", "UPDATE" und "DELETE" für ein Dataset auch einzeln gewähren, vorausgesetzt, das Dataset ist nicht als versioniert registriert.
- Starten Sie ArcMap oder ArcCatalog, und doppelklicken Sie im Kataloginhaltsverzeichnis auf den Ordner Datenbankverbindungen.
- Stellen Sie eine Verbindung mit der Datenbank oder Geodatabase her, die die Daten enthält, deren Eigentümer Sie sind und für die Sie Berechtigungen gewähren oder widerrufen möchten.
- Klicken Sie mit der rechten Maustaste auf das Dataset, zeigen Sie auf Verwalten, und klicken Sie auf Berechtigungen.
Das Dialogfeld Berechtigungen wird geöffnet.
- Wenn der Benutzer oder die Rolle, deren Berechtigungen Sie ändern möchten, bereits in der Liste enthalten ist, aktivieren bzw. deaktivieren Sie die Kontrollkästchen der Berechtigungen, die Sie gewähren bzw. widerrufen möchten, und klicken Sie auf OK, um die Änderungen zu übernehmen.
- Wenn sich der Benutzer oder die Rolle noch nicht in der Liste befinden, gehen Sie wie folgt vor:
- Klicken Sie auf Hinzufügen, um das Dialogfeld Benutzer/Rolle zu öffnen.
- Wenn Sie über Berechtigungen in der Datenbank verfügen, die Systemtabelle anzuzeigen, in der alle Benutzer und Rollen in der Datenbank aufgelistet sind, können Sie die Datenbankbenutzer oder Rollen auswählen, die Sie aus der Liste hinzufügen möchten, indem Sie das Kontrollkästchen neben dem jeweiligen Namen aktivieren. Zum Gewähren von Berechtigungen können Sie auch den Namen des Datenbankbenutzers, die Datenbankrolle, die Anmeldedaten für das Betriebssystem oder die Windows-Gruppe eingeben. Um mehrere Benutzer oder Gruppen einzugeben, geben Sie die Namen durch Trennzeichen getrennt (keine Leerzeichen) ein.
- Klicken Sie auf OK, um das Dialogfeld Benutzer/Rolle zu schließen.
- Aktivieren Sie die Kontrollkästchen der Berechtigungen, die Sie für die einzelnen Benutzer oder Rollen gewähren möchten, und klicken Sie auf OK.
Verwenden des Werkzeugs Berechtigungen ändern
Mit dem Werkzeug Berechtigungen ändern können Sie Berechtigungen für Datasets, deren Eigentümer Sie sind, gewähren oder widerrufen. Das Werkzeug befindet sich im Toolset "Geodatabase-Verwaltung" der Toolbox "Data Management".
Mit diesem Werkzeug können Sie die Berechtigungen eines Benutzers oder einer Gruppe für mehrere Datasets gleichzeitig ändern. Beachten Sie, dass das Werkzeug Berechtigungen ändern nicht anzeigt, welche Berechtigungen dem Benutzer für das Datasets bereits gewährt wurden. Außerdem müssen die Berechtigungen "INSERT", "UPDATE" und "DELETE" als Gruppen, nicht einzeln gewährt werden.
- Stellen Sie eine Verbindung mit der Geodatabase oder Datenbank als Besitzer des Datasets her, für das Sie Berechtigungen gewähren oder widerrufen möchten.
- Öffnen Sie das Werkzeug Berechtigungen ändern.
- Navigieren Sie zu der Datenbankverbindung, und wählen Sie die Datasets aus, für die Sie Berechtigungen ändern möchten.
- Geben Sie den Namen des Benutzers oder der Gruppe ein, dessen oder deren Berechtigungen Sie ändern möchten.
- Verwenden Sie die Dropdown-Listen Anzeigen und Bearbeiten, um die Berechtigungen auszuwählen, die Sie dem angegebenen Benutzer bzw. der Gruppe gewähren möchten:
Um Bearbeitungsberechtigungen zuzuweisen, müssen Sie auch Anzeigeberechtigungen erteilen.
- Klicken Sie auf OK, um das Werkzeug auszuführen.
Verwenden eines Python-Skripts
Wenn Sie Berechtigungen für ein eigenes Dataset mithilfe eines Python-Skripts gewähren oder widerrufen möchten, können Sie die Funktion ChangePrivileges_management verwenden.
- Erstellen Sie zunächst eine Datenbankverbindung mit der Funktion CreateDatabaseConnection_management. Sie müssen eine Verbindung als Besitzer des Datasets herstellen und den Benutzernamen mit der Datei speichern.
In diesem Beispiel wird die Verbindungsdatei "gdb.sde" im Verzeichnis "/usr/connections" erstellt. Die Verbindung wird mit der Datenbank "markets" im Datenbank-Cluster "dserver" als Benutzer "eng1" hergestellt.
import arcpy arcpy.CreateDatabaseConnection_management (r'/usr/connections', "gdb.sde", "POSTGRESQL", "dserver", "DATABASE_AUTH", "eng1", "T!i569", "SAVE_USERNAME", "markets")
- Führen Sie die Funktion ChangePrivileges_management aus.
In diesem Beispiel werden den Gruppenlesern Anzeigeberechtigungen für drei Datasets gewährt.
arcpy.ChangePrivileges_management ("/usr/connections/gdb.sde/markets.eng1.properties,markets.eng1.routes,markets.eng1.demo", "readers", "GRANT", "AS_IS")