Hinweis:
Diese Funktionen können nur für Enterprise-Geodatabases, nicht für Datenbanken, verwendet werden.
Sie können einen Feature-Service konfigurieren, um Informationen darüber zu erfassen, welche Benutzer die einzelnen Features erstellt haben. Außerdem können Sie den Zugriff von Benutzern auf Features unterbinden, deren Besitzer sie nicht sind. Dies wird als besitzbasierte Zugriffssteuerung bezeichnet.
Zur Verwendung der besitzbasierten Zugriffssteuerung müssen Sie in Ihrem Dataset ein Feld festlegen, das den Namen des Erstellers enthält. Dann müssen Sie die Editor-Tracking-Einstellungen ändern, um dieses Feld als Creator-Feld zu kennzeichnen. Die hierfür erforderlichen Schritte finden Sie unter Editor-Tracking für Feature-Services.
Wenn Sie beim Veröffentlichen des Service die Funktion Feature-Zugriff aktivieren, wählen Sie auch die Eigenschaft Besitzbasierte Zugriffssteuerung für Features aktivieren. Dann können Sie die zulässigen Operationen für Features, die von anderen Benutzern erstellt wurden (Abfragen, Aktualisieren und Löschen) festlegen, um anzugeben, was Nicht-Ersteller durchführen können. Der Ersteller kann im Allgemeinen alle für den Service zulässigen Vorgänge ausführen.
Beachten Sie, dass der angemeldete Benutzer bei Deaktivierung von "Abfragen" nur die Features sieht, die er erstellt hat. Wenn "Abfragen" dagegen aktiviert ist, sind "Aktualisieren" und "Löschen" deaktiviert, gewähren Features, die anderen Benutzern gehören, jedoch schreibgeschützten Zugriff.
Die besitzbasierte Zugriffssteuerung funktioniert nur, wenn dem Service Informationen darüber zur Verfügung stehen, wer Features erstellt und wer darauf zuzugreifen versucht. Der Entwickler muss in der Client-Anwendung festlegen, dass Benutzer ihre ArcGIS for Server-Anmeldeinformationen angeben müssen. Mit diesen Informationen kann der Entwickler einen Token von ArcGIS for Server abrufen. Der verschlüsselte Token mit den Benutzerinformationen muss beim Senden von Anforderungen an den Feature-Service übergeben werden.
Wenn ein Feature über eine anonyme Anforderung erstellt wird (d. h. die Anforderung enthält keine Benutzerinformationen), bleibt das Creator-Feld leer, und alle Benutzer haben Zugriff auf das Feature.
Hinweis:
Änderungen von anonymen Benutzern durch den Feature-Service werden in der Geodatabase als "Esri_Anonymous" protokolliert. Diese Werte werden Clients, die den Feature-Service verwenden, jedoch als leere Zeichenfolge angezeigt. Wenn Sie den Feature-Service durch das REST-Service-Verzeichnis abfragen, um von anonymen Benutzern erstellte Features zu finden, müssen Sie Esri_Anonymous angeben. Wenn beispielsweise der Feature-Layer ein Erstellerfeld mit dem Namen "created_by" enthält, geben Sie created_by='Esri_Anonymous' im Feld Where ein.
Wenn ein Feature-Service zur Bearbeitung einer offline genommenen Karte verwendet wird, werden die Bearbeitungen anhand des Namens der Person verfolgt, die die Karte offline genommen hat, und Zugriffssteuerung wird auf der Basis dieses Benutzers umgesetzt. Beachten Sie, dass besitzbasierte Zugriffssteuerung nicht für ArcGIS for Server-Administratoren umgesetzt wird. Administratoren verfügen über sämtliche Berechtigungen.
Für Datasets im Service, für die kein Creator-Feld festgelegt wurde, greift die besitzbasierte Zugriffssteuerung nicht. Wenn Sie das Kontrollkästchen zur Aktivierung der besitzbasierten Zugriffssteuerung aktiviert, aber kein Creator-Feld angegeben haben, können beim Analysieren der Karte für die Veröffentlichung Warnungen angezeigt werden. Für Layer und Tabellen ohne Creator-Feld werden die auf Service-Ebene festgelegten Berechtigungsregeln verwendet (siehe Editor-Berechtigungen für Feature-Services).
Web-Editoren
Bei der Konfiguration der besitzbasierten Zugriffssteuerung können Sie einen Benutzerbereich angeben. Wenn beispielsweise der Benutzerbereich auf myserver.com festgelegt ist und der Benutzer "Bob" eine Verbindung herstellt und ein Feature über den Service einfügt, wird als Ersteller Bob@myserver.com erfasst. Wenn Bob ein Feature in ArcMap einfügt, wird als Ersteller "Bob" erfasst.
Die Regeln der besitzbasierten Zugriffssteuerung gelten für Web-Editoren ohne Administratorrechte, die Bearbeitungen über den Service vornehmen.
Tipps und Empfehlungen
Berücksichtigen Sie außerdem, dass die Optionen der besitzbasierten Zugriffssteuerung auf die für alle Benutzer zulässigen Operationen auf Service-Ebene beschränkt sind. Wenn beispielsweise die Operationen "Aktualisieren" und "Löschen" auf Service-Ebene nicht aktiviert wurden, sind diese auch in den Einstellungen der besitzbasierten Zugriffssteuerung deaktiviert.
Bei der Veröffentlichung eines Service sollten Sie das Erstellerfeld für alle Layer und Tabellen sichtbar machen. Auf diese Weise erfahren Clients, welcher Benutzer ein bestimmtes Feature erstellt hat. Die Clients können diese Informationen dann verwenden, um Benutzer davon abzuhalten, Features zu bearbeiten, für die sie keine entsprechenden Berechtigungen haben. Wenn das Erstellerfeld ausgeblendet ist, wissen Clients, die den Feature-Service nutzen, nicht, welcher Benutzer ein bestimmtes Feature erstellt hat. Wenn der Client versucht, ein Feature zu bearbeiten, für das er keine Berechtigung hat, wird ein Fehler zurückgegeben.
Beachten Sie den Unterschied zwischen Editor-Tracking und der besitzbasierten Zugriffssteuerung. Wenn Editor-Tracking für einen Layer auf Dataset-Ebene aktiviert wurde, werden Änderungen vom Feature-Service aufgezeichnet, unabhängig davon, ob besitzbasierte Zugriffsregeln konfiguriert wurden. Die Aktivierung von Editor-Tracking auf Dataset-Ebene ist jedoch eine Voraussetzung für das Festlegen von besitzbasierten Zugriffsregeln.
Wenn ein nicht authentifizierter Benutzer Änderungen vornimmt, bleibt das Ersteller- oder Bearbeiterfeld leer. Wenn die besitzbasierte Zugriffssteuerung aktiviert ist, können alle Benutzer Features bearbeiten. Wenn die besitzbasierte Zugriffssteuerung aktiviert und der Ersteller NULL ist, sind die Features oder Datensätze schreibgeschützt. Features können nicht bearbeitet werden. Service-Autoren können ihre Daten so konfigurieren, dass Features, die schreibgeschützt sein sollen, NULL als Ersteller aufweisen.