Краткая информация
Позволяет администратору отключать пользователей, подключенных в данный момент к многопользовательской базе геоданных.
Обсуждение
Функция DisconnectUser используется пользователем-администратором для отключения пользователей от многопользовательской базы геоданных. Эта функция используется для добавления диалогового окна Подключенные пользователи, которое имеется в ArcGIS Desktop.
- Функция DisconnectUser должна использовать административное подключение к базе данных.
- Если эту функцию пытается выполнить пользователь, не владеющий правами администратора, функция завершается с ошибкой.
- Если выбрать всех пользователей, то все они будут отключены, кроме подключения администратора, которое используется для выполнения этой функции или базы данных.
Синтаксис
DisconnectUser (sde_workspace, {users})
Параметр | Описание | Тип данных |
sde_workspace | Многопользовательская база геоданных, содержащая пользователей, которые будут отключены. Свойства подключения, заданные в многопользовательской базе геоданных, должны иметь права администратора, которые бы позволяли пользователю отключать другие подключения. | String |
users [users,...] | Указывает, какие пользователи будут отключены от базы геоданных.
Примечание:DisconnectUser не отключает пользователя, выполняющего функцию. | Integer |
Пример кода
Следующий пример демонстрирует, как отключить всех пользователей от базы геоданных.
import arcpy
arcpy.DisconnectUser("D:\\MyProject\\admin.sde", "ALL")
Следующий пример демонстрирует, как запустить команду для отключения одного пользователя. В этом примере идентификатор SDE ID извлекается на основе имени пользователя, которого администратор хотел бы исключить из списка подключенных, возвращенного функцией ListUsers.
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)