HOW TO

Die bereitgestellten Verbindungsinformationen wurden für einen Benutzer ohne Administratorberechtigungen bereitgestellt

Last Published: February 19, 2025

Beschreibung

Die Verwendung der ArcPy.DisconnectUser-Funktion in einem Python-Skript als geplanter Task zum Trennen der Benutzerverbindung zu einer Enterprise-Datenbank schlägt fehl, und es wird die folgende Fehlermeldung zurückgegeben:

Error:
RuntimeError:Connection information provided was for a non-administrative user

Der Fehler tritt auf, obwohl der Benutzer über bestimmte Administratorberechtigungen für den Zugriff auf die Datenbank oder für die Datenbankauthentifizierung verfügt und in der Verbindungsdatei Anmeldeinformationen gespeichert sind.

Note:
ArcGIS Enterprise supports several different databases. Each vendor has a different definition and permission set for the administrator role. For more information about the geodatabase administrator, and on the privileges needed based on a person's role in the organization, see the help page specific to the database management system you use. See also: ArcGIS Pro: Geodatabase management

Ursache

Mögliche Gründe sind unter anderem:

  • Der Benutzer ist kein Administrator oder verfügt nicht über die entsprechenden Berechtigungen, um die Verbindung von anderen Benutzern zu trennen. Dies ist eine bekannte Einschränkung, die unter ArcMap: DisconnectUser beschrieben wird.
  • Die Datenbank akzeptiert aktiv Verbindungen. In diesem Fall wird der Fehler zurückgegeben, obwohl ein Administrator auf die Datenbank zugreift.

Lösung oder Problemumgehung

Verwenden Sie ein Administratorbenutzerkonto, um die Verbindung zu Benutzern zu trennen. Wenn die richtigen Berechtigungen erteilt wurden und das Problem erneut auftritt, beheben Sie es, indem Sie neue Verbindungen mit der Datenbank verweigern und das Zeitmodul implementieren, um sicherzustellen, dass aktive Verbindungsversuche fehlschlagen. Führen Sie dazu die angegebenen Schritte aus.

  1. Importieren Sie die erforderlichen Module.
import arcpy
import time
  1. Geben Sie den gewünschten Workspace an.
admin_workspace = '[SDECONNECTIONFILE]'
arcpy.env.workspace = admin_workspace
  1. Blockieren Sie neue Verbindungen mit der Datenbank.
arcpy.AcceptConnections(admin_workspace, False)
  1. Implementieren Sie das Zeitmodul, um das Fehlschlagen aller aktiven Verbindungen abzuwarten.
time.sleep(120)
  1. Trennen Sie die Verbindung aller Benutzer mit der Datenbank.
arcpy.DisconnectUser(admin_workspace, "ALL")

Nachfolgend finden Sie den vollständigen Code:

import arcpy
import time

admin_workspace = 'Database Connections\sample_connection.sde'
arcpy.env.workspace = admin_workspace

arcpy.AcceptConnections(admin_workspace, False)
time.sleep(120)

arcpy.DisconnectUser(admin_workspace, "ALL")

Artikel-ID: 000018531

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