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