HOW TO

Erstellen von Attributregeln für den Zugriff auf Feature-Classes in einer anderen Datenbankinstanz

Last Published: June 28, 2024

Zusammenfassung

Im vorherigen Artikel zum Erstellen von Attributregeln für den Zugriff auf Feature-Classes in einer anderen Datenbank haben wir uns mit der Erstellung und Registrierung einer Sicht befasst, die auf eine Feature-Class in einer anderen Enterprise-Geodatabase auf derselben SQL Server-Instanz zugreift. Die Sicht wurde anschließend beim Erstellen einer Attributregel verwendet. In diesem Artikel wird ein geringfügig anderer Ansatz verfolgt, indem die Sicht auf einer separaten SQL Server-Instanz erstellt wird. Dies ist insbesondere dann nützlich, wenn Sie nicht die erforderlichen Berechtigungen haben, um die Feature-Class abzufragen, die Sie beim Erstellen der Attributregel verwenden möchten.

In diesem Beispiel versuchen wir mit Microsoft SQL Server auf die Feature-Class FAVORITEFOODANDLOCALE im Besitz von DataLabOwner zuzugreifen, die in der Geodatabase DataLab auf einer anderen Instanz im selben Netzwerk gespeichert ist. Dazu müssen wir eine Datenbankverknüpfung erstellen, um auf die Daten der separaten Instanz zugreifen zu können.

Vorgehensweise

Workflow zum Erstellen einer Datenbankverknüpfung

  1. Öffnen Sie SQL Server Management Studio (SSMS), und stellen Sie eine Verbindung als Datenbankadministrator oder Datenbesitzer her.
  2. Befolgen Sie die Anweisungen im Artikel Erstellen von Verbindungsservern (SQL Server-Datenbank-Engine) in SQL Server Management Studio, um eine Verknüpfung zur SQL Server-Zielinstanz zu erstellen.
    1. Legen Sie auf der Registerkarte Allgemein den Servertyp auf SQL Server fest, und geben Sie in das Textfeld Verbindungsserver den Namen der Instanz (Computername) oder die IP-Adresse des Computers ein.
    2. Legen Sie auf der Registerkarte Sicherheit die Option zur Anmeldung an der Verbindung auf Erfolgt unter Verwendung dieses Sicherheitskontexts fest, und geben Sie den Benutzernamen und das Kennwort des Datenbankadministrators oder des Datenbesitzers der Feature-Class, auf die Sie zugreifen möchten, an.
    3. Legen Sie auf der Registerkarte Serveroptionen RPC und RPC-Ausgang auf True fest.
    4. Testen Sie die Konnektivität, indem Sie mit der rechten Maustaste auf den Verbindungsserver klicken und Verbindung testen auswählen.

Erstellen einer Sicht für den Zugriff auf die Feature-Class über den Verbindungsserver

  1. Klicken Sie in SSMS auf Neue Abfrage.
  2. Überprüfen Sie die folgende Abfrage, und geben Sie sie ein, um eine Sicht zu erstellen:
Use sqlDatabase
Go
Create view DataAdmin.vw_FavoriteFoodandLocale_LS1
as
Select *
from
OPENQUERY([10.150.51.50],
    'Select
        OBJECTID,
        Place,
        Item,
        IsBeverage,
        State,
        Shape,
        GlobalID,
        GDB_GEOMATTR_DATA
    From DataLab.DataLabOwner.FAVORITEFOODANDLOCALE')

 Erstellen der Sicht in einem SQL-Editor 

In diesem Beispiel ist sqlDatabase die aktive Datenbank in der eigenen Instanz, und der Name der Sicht lautet vw_FavoriteFoodandLocale_LS1 mit dem Schemabesitzer DataAdmin. Die OPENQUERY-Methode wird übergeben, um eine Passthrough-Abfrage für den Zugriff auf Tabellen auf dem Verbindungserver [10.150.51.50] zu ermöglichen.

  1. Führen Sie die Abfrage aus, um die Datenbanksicht zu erstellen:
    • Die Sicht "DataAdmin.vw_FavoriteFoodandLocale_LS1" wird erstellt und der Datenbank hinzugefügt.
    • Als Nächstes greifen Sie in ArcGIS Pro auf die Sicht zu und registrieren sie bei der Geodatabase.
  2. Öffnen Sie das ArcGIS Pro-Projekt.
  3. Klicken Sie bei Bedarf im Bereich "Katalog" mit der rechten Maustaste auf Datenbanken, und stellen Sie eine Verbindung mit der Datenbank her, in der Sie arbeiten, indem Sie mithilfe der Option Neue Datenbankverbindung eine neue Verbindung herstellen.
  4. Erweitern Sie die Datenbank, und überprüfen Sie, ob die von Ihnen erstellte Sicht verfügbar ist.
  5. Klicken Sie im Bereich "Katalog" in der Datenbank mit der rechten Maustaste auf die Sicht, und wählen Sie In Geodatabase registrieren aus.
  6. Legen Sie im Bereich des Geoverarbeitungswerkzeugs In Geodatabase registrieren die erforderlichen Parameter fest, und klicken Sie auf Ausführen, um das Werkzeug auszuführen.

Die Sicht ist in der Geodatabase registriert und kann über Arcade mit der $datastore-Funktion beim Einrichten einer Attributregel aufgerufen werden, wie im Beispiel und in der Abbildung unten gezeigt.

var fnl = FeatureSetByName
    ($datastore,"DATAADMIN.vw_FavoriteFoodandLocale_LS1, ["Place"])
var ffnl = Intersects(fnl, $feature)
var F = First(ffnl)
//var NPharma = NearestCoordinate(Fpharma, $feature)
if (F == null) return {"errorMessage: "Outside the county"}
return F.Place

Diese Attributregel füllt ein Feld (FnL) in einer Polygon-Feature-Class (DATAADMIN.Counties) mit dem Ortsnamen eines überschneidenden Sicht-Layers (DATAADMIN.vw_FavoriteFoodandLocale_LS1), wie in der nächsten Abbildung gezeigt.

In diesem Artikel haben wir uns mit dem Erstellen einer Sicht in einer SQL Server-Datenbank befasst, die eine Feature-Class aus einer anderen Datenbank in einer anderen SQL Server-Instanz referenziert. Wir haben einen Verbindungsserver für die Zielinstanz erstellt, während wir die Verbindung als Datenbesitzer hergestellt haben. Auf diese Weise waren wir berechtigt, auf den Layer in der aktiven Instanz zuzugreifen und diesen abzufragen.

Nach dem Registrieren der Sicht in der Datenbank konnten wir beim Einrichten einer Attributregel zur Generierung von Informationen auf der Grundlage der Attribute in der Feature-Class in einer anderen Instanz über einen Arcade-Ausdruck auf die Sicht verweisen.

Artikel-ID: 000032575

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln