ArcGIS Server bietet eine Sicherheitsoption, die Entwickler dazu zwingt, bei der Arbeit mit Karten-, Feature-, Image- und WFS-Services standardisierte SQL-Abfragen zu verwenden. Dadurch können Entwickler und Anwendungen ArcGIS-Server-Services leichter abfragen, und Angriffe durch Einschleusung von SQL-Befehlen werden verhindert. Standardisierte Abfragen werden standardmäßig erzwungen, diese Option kann jedoch vom Serveradministrator deaktiviert werden.
Welche Auswirkungen haben standardisierte Abfragen?
Wenn standardisierte Abfragen aktiviert sind, sucht ArcGIS nach der Standardsyntax und erlaubt keine datenbankspezifische(n) Funktionen und Syntax. Wenn Sie als Anwendungsentwickler noch datenbankspezifische Funktionen und Syntax verwenden, müssen Sie die WHERE-Klauseln im Code der Anwendung aktualisieren, um eine bekannte, von ArcGIS unterstützte Syntax verwenden zu können. Alternativ können Sie auch die Suche nach standardisierten Abfragen in ArcGIS Server deaktivieren.
Einschränkungen bei standardisierten Abfragen
Standardisierte Abfragen werden auf die gesamte ArcGIS Server-Site angewendet. Es ist nicht möglich, sie nur für einige Services zu deaktivieren.
Standardisierte Abfragen werden nicht für Verbindungen zwischen unterschiedlichen Workspaces unterstützt. Datenbanktabellen, auf die über eine OLE-DB-Verbindungsdatei zugegriffen wird, werden ebenfalls nicht unterstützt. Wenn die Service-Daten diese Quellen enthalten, müssen Sie alternative Methoden zum Referenzieren der Daten verwenden.
Unterabfragen wie eine WHERE-Klausel, beispielsweise POP_2010 = (SELECT min(POP_2010) FROM counties, werden nicht unterstützt.
Wie schreibe ich eine standardisierte Abfrage?
Im folgenden Thema werden die in ArcGIS-Server unterstützten SQL-Funktionen beschrieben:
In ArcGIS-Server unterstützte SQL-Funktionen
Anhand dieses Dokuments wird vermittelt, welche SQL-Funktionen zum Erstellen standardisierter Abfragen herangezogen werden können, die für Karten-, Feature-, Image- und WFS-Services in Ihren Anwendungen verwendet werden können.
Woran erkenne ich, ob standardisierte Abfragen in ArcGIS Server verwendet werden?
Wie oben erwähnt, sind standardisierte Abfragen standardmäßig aktiviert und gelten für alle Karten-, Feature-, Image- und WFS-Services auf der ArcGIS-Server-Site. Serveradministratoren können jedoch überprüfen, ob standardisierte Abfragen verwendet werden, indem sie sich beim ArcGIS-Server-Administratorverzeichnis anmelden und zu System > Eigenschaften > Update navigieren. Wenn im Dialogfeld Systemeigenschaften keine Systemeigenschaft angezeigt wird oder {"standardizedQueries": "true"} vorhanden ist, sind die standardisierten Abfragen aktiviert.
Alternativ können Administratoren, Anwendungsentwickler und Clients überprüfen, ob standardisierte Abfragen verwendet werden, indem ein Service über das Services-Verzeichnis von ArcGIS-Server aufgerufen und die Eigenschaft Standardisierte Abfragen verwenden überprüft wird. Für Karten-, Feature- und WFS-Services kann die Eigenschaft überprüft werden, indem auf einen bestimmten Layer oder eine bestimmte Tabelle in dem Service zugegriffen wird, z. B. http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/service type/0. Für Image-Services ist die Eigenschaft am Service-Endpunkt verfügbar, z. B. http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/ImageServer.
Weitere Anweidungen zum Zugriff auf Administrator Directory oder zur Deaktivierung von standardisierten Abfragen finden Sie im nächsten Abschnitt dieses Themas.
Deaktivieren von standardisierten Abfragen
Wenn in Ihrer Anwendung datenbankspezifische WHERE-Klausel-Anweisungen verwendet werden müssen, können Sie die standardisierten Abfragen über das ArcGIS-Server-Administratorverzeichnis deaktivieren. Führen Sie dazu folgende Anweisungen aus.
Vorsicht:
Die Deaktivierung dieser Sicherheitsoption kann zur Einschleusung von SQL-Befehlen führen.
Hinweis:
Das Deaktivieren standardisierter Abfragen wird für gehostete Feature-Services in ArcGIS Enterprise nicht unterstützt.
- Öffnen Sie das Administratorverzeichnis, und melden Sie sich als Benutzer mit Administrator-Berechtigungen bei der Site an. Das Administratorverzeichnis ist normalerweise unter http://gisserver.domain.com:6080/arcgis/admin verfügbar.
- Klicken Sie auf System > Eigenschaften > Aktualisieren.
- Geben Sie auf der Seite Vorgang – Update die folgende Zeichenfolge in das Dialogfeld Systemeigenschaften ein:
{"standardizedQueries": "false"}
- Klicken Sie auf Aktualisieren.
- Starten Sie ArcGIS-Server neu.
Die Site ist nun so konfiguriert, dass Benutzer unter Verwendung von nichtstandardisierten Abfragen Anforderungen an Karten-, Feature-, Image- und WFS-Services senden können. Wenn Sie standardisierte Abfragen erneut aktivieren möchten, wiederholen Sie die Anweisungen oben, und setzen Sie die standardizedQueries-Eigenschaft auf wahr.