Mit der Standard- oder Advanced-Lizenz verfügbar.
Als Geodatabase-Administrator müssen Sie gelegentlich überprüfen, wer mit der Geodatabase verbunden ist und welche Verbindungen Ressourcen sperren. Sie müssen möglicherweise sogar bestimmte Verbindungen entfernen. Ein Editor hat möglicherweise eine Bearbeitungssitzung geöffnet gelassen, wodurch die Daten in der Bearbeitungssitzung gesperrt und andere Editoren nicht darauf zugreifen können. Wenn die Anzahl der Verbindungen, die mit einer Geodatabase hergestellt werden können, beschränkt ist, müssen Sie einen Benutzer, der sich nicht abgemeldet hat, möglicherweise trennen, um eine Verbindung freizugeben. Sie können jedoch auch alle Benutzer abmelden, um ein Patch auf die Datenbank anzuwenden, die Datenbank wiederherzustellen oder die Geodatabase zu komprimieren.
Wenn die Benutzer nicht anwesend sind, um sich selbst abzumelden, können Sie als Geodatabase-Administrator über ArcGIS Desktop oder mit einer ArcPy-Funktion eine Verbindung mit der Geodatabase herstellen und die Verbindungen trennen.
Um Benutzer von einer Geodatabase in Microsoft SQL Server zu trennen, benötigt der Geodatabase-Administrator möglicherweise zusätzliche Berechtigungen.
- Der Geodatabase-Administrator (sde) in einer SDE-Schema-Geodatabase benötigt VIEW DEFINITION-Berechtigungen für die Datenbank, um die Liste der verbundenen Benutzer anzuzeigen, und muss ein Mitglied der festgelegten Serverrolle "processadmin" sein, um Benutzer zu trennen.
- Wenn der Geodatabase-Administrator einer DBO-Schema-Geodatabase der Datenbankbesitzer ist, muss der Geodatabase-Administrator der festgelegten Serverrolle "processadmin" hinzugefügt werden, um Benutzer trennen zu können.
Legen Sie zunächst fest, wer mit der Geodatabase verbunden ist. Sie können dann ggf. die entsprechenden Verbindungen trennen.
Identifizieren und Entfernen von Verbindungen über ArcMap
Sie können als Geodatabase-Administrator in ArcMap eine Verbindung mit der Geodatabase herstellen, um Verbindungen im Dialogfeld Geodatabase-Verwaltung anzuzeigen und zu entfernen.
- Starten Sie ArcMap oder ArcCatalog.
- Stellen Sie eine Verbindung mit der Geodatabase als Geodatabase-Administrator her.
- Klicken Sie im Kataloginhaltsverzeichnis mit der rechten Maustaste auf die Datenbankverbindung, zeigen Sie auf Verwaltung, und klicken Sie auf Geodatabase verwalten.
- Klicken Sie auf die Registerkarte Verbindungen.
Es wird eine Liste mit allen Sitzungen angezeigt, die gerade mit der Geodatabase verbunden sind. Ihre Sitzung wird in kursivem Text angezeigt.
- Wenden Sie sich an einzelne Benutzer, um sie zu bitten, ihre Sitzungen zu schließen. Falls Sie sie nicht erreichen können und sie dennoch von der Geodatabase trennen müssen, fahren Sie mit dem nächsten Schritt fort.
- Klicken Sie mit der rechten Maustaste auf die entsprechende Benutzersitzung, die Sie aus der Geodatabase entfernen möchten, und klicken Sie auf Trennen.
Die Sitzung wird sofort aus der Geodatabase gelöscht.
Identifizieren und Entfernen von Verbindungen mit ArcPy
Sie können Python-Funktionen ausführen, um eine Geodatabase-Verbindungsdatei für den Geodatabase-Administrator zu erstellen, mit dieser Verbindungsdatei eine Verbindung mit der Geodatabase herzustellen, eine Liste aller aktuellen Geodatabase-Verbindungen abzurufen und ggf. eine Verbindung aus der Geodatabase zu entfernen.
- Erstellen Sie eine Datenbankverbindungsdatei, indem Sie die Funktion CreateDatabaseConnection_management in einem Python-Fenster ausführen.
In diesem Beispiel wird im temporären Ordner eine Verbindungsdatei (ssgdb.sde) erstellt. Die Verbindung wird durch die Anmeldung als SA-Benutzer mit der Datenbank "gisprod" auf der SQL Server-Instanz "sdept4" hergestellt.
import arcpy arcpy.CreateDatabaseConnection_management ("c:\\temp","ssgdb.sde","SQL_SERVER","sdept4","DATABASE_AUTH","sa","esayP@ss","SAVE_USERNAME","gisprod")
- Führen Sie die Funktion ListUsers aus, um eine Liste der aktuellen Verbindungen mit der Geodatabase "gisprod" abzurufen.
Übergeben Sie die Verbindungsdatei, die Sie im vorherigen Schritt erstellt haben.
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.ListUsers("c:\\temp\ssgdb.sde")
Es wird eine Liste der Benutzerverbindungen zurückgegeben.
[user(ClientName=u'PC4', ConnectionTime=datetime.datetime(2014, 2, 18, 8, 30, 19), ID=18, IsDirecConnection=True, Name=u'PUBLISHER1')] [user(ClientName=u'PC25', ConnectionTime=datetime.datetime(2014, 2, 21, 14, 10, 43), ID=33, IsDirecConnection=True, Name=u'EDITOR2')] [user(ClientName=u'PC11', ConnectionTime=datetime.datetime(2014, 2, 22, 9, 18, 26), ID=39, IsDirecConnection=True, Name=u'READER5')] [user(ClientName=u'PCA2', ConnectionTime=datetime.datetime(2014, 2, 22, 11, 21, 2), ID=41, IsDirecConnection=True, Name=u'DBO')]
- Wenden Sie sich an einzelne Benutzer, um sie zu bitten, ihre Sitzungen zu schließen. Falls Sie sie nicht erreichen können und sie dennoch von der Geodatabase trennen müssen, fahren Sie mit dem nächsten Schritt fort.
- Ermitteln Sie anhand der mit der Funktion ListUsers abgerufenen Informationen, welche Verbindung entfernt werden muss, indem Sie die Funktion DisconnectUser verwenden.
Geben Sie die ID der zu entfernenden Verbindung an. Hier wird die Verbindung mit der ID 33 entfernt:
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.DisconnectUser("c:\\temp\ssgdb.sde",33)
Die Sitzung wird sofort aus der Geodatabase gelöscht.