Summary
Allows an administrator to disconnect users who are currently connected to an enterprise geodatabase.
Discussion
The DisconnectUser function is used by an administrative user to disconnect users from an enterprise geodatabase. This function is used to complement the Connected users dialog box found in ArcGIS Desktop.
- The DisconnectUser function must utilize an administrative connection to the database.
- If this function is attempted to be run by a nonadministrative user the function will fail.
- Selecting all users will disconnect all users other than the administrator connection used to execute the function or database.
Syntax
DisconnectUser (sde_workspace, {users})
Parameter | Explanation | Data Type |
sde_workspace | The enterprise geodatabase containing the users to be disconnected. The connection properties specified in the enterprise geodatabase must have administrative rights that allow the user to disconnect other connections. | String |
users [users,...] | Specifies which users will be disconnected from the geodatabase.
Note:DisconnectUser will not disconnect the user who is executing the function. | Integer |
Code sample
The following example demonstrates how to disconnect all users from a geodatabase.
import arcpy
arcpy.DisconnectUser("Database Connections/admin@sde.sde", "ALL")
The following example demonstrates how to run the command to disconnect a single user. In this example, the SDE ID is extracted based on the name of the user that the admin would like to disconnect from the list returned from the ListUsers function.
import arcpy
admin_workspace = "Database Connections/tenone@sde.sde"
arcpy.env.workspace = admin_workspace
user_name = "GDB"
# Look through the users in the connected user list and get the SDE ID.
# Use the SDE ID to disconnect the user that matches the username variable
users = arcpy.ListUsers() # The environment is set, no workspace is needed.
for item in users:
if item.Name == user_name:
arcpy.DisconnectUser(admin_workspace, item.ID)
The following example demonstrates how to run the DisconnectUser command to disconnect multiple users.
import arcpy
# Set the admistrative workspace connection
admin_workspace = "Database Connections/tenone@sde.sde"
# Create a list of users to disconnect.
user_names = ["TRAVIS", "DEBBIE", "PHIL"]
# Get a list of connected users
connected_users = arcpy.ListUsers(admin_workspace)
# Loop through the list of connected users and execute DisconnectUser
# if the user name is in the userNamesList created earlier:
for user in connected_users:
if user.Name in user_names:
print('Disconnecting {0}'.format(user.Name))
arcpy.DisconnectUser(admin_workspace, user.ID)