描述
允许管理员断开当前连接到企业级地理数据库的用户的连接。
讨论
管理员可使用 DisconnectUser 函数断开用户与企业级地理数据库的连接。该函数可用于补充 ArcGIS Desktop 中的已连接用户对话框。
- DisconnectUser 函数必须使用连接到数据库的管理连接。
- 如果尝试以非管理员用户身份运行此函数,函数将无法运行。
- 选择除用于执行函数或数据库的管理员连接之外的所有用户,断开其连接。
语法
DisconnectUser (sde_workspace, {users})
参数 | 说明 | 数据类型 |
sde_workspace | 包含要断开连接的用户的企业级地理数据库。 在企业级地理数据库中指定的连接文件必须具有管理权限以允许用户断开其他连接。 | String |
users [users,...] | 指定将断开哪些用户与地理数据库的连接。
注:DisconnectUser 将不会断开正在执行函数的用户的连接。 | Integer |
代码示例
以下示例说明了从地理数据库断开所有用户连接的方法。
import arcpy
arcpy.DisconnectUser("D:\\MyProject\\admin.sde", "ALL")
以下示例演示了断开单一用户连接的命令行。在本例中,管理员按照 ListUsers 函数返回的用户名列表提取要断开连接的用户 SDE ID。
import arcpy
admin_workspace = "D:\\MyProject\\admin.sde"
arcpy.env.workspace = admin_workspace
user_name = "GDB"
# Look through the users in the connected user list and get the connection ID.
# Use the connection ID to disconnect the user that matches the username variable
users = arcpy.ListUsers(admin_workspace)
for item in users:
if item.Name == user_name:
arcpy.DisconnectUser(admin_workspace, item.ID)
以下示例演示了运行 DisconnectUser 命令断开多个用户连接的方法。
import arcpy
# Set the admistrative workspace connection
admin_workspace = "D:\\MyProject\\admin.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 user_names list
for user in connected_users:
if user.Name in user_names:
print('Disconnecting {0}'.format(user.Name))
arcpy.DisconnectUser(admin_workspace, user.ID)