Краткая информация
Функция DisconnectUser используется администратором для отключения пользователей, которые в настоящий момент подключены к многопользовательской базе геоданных.
Обсуждение
Функция DisconnectUser используется пользователем-администратором для отключения пользователей от многопользовательской базы геоданных. Эта функция используется в качестве дополнения к диалоговому окну Администрирование базы геоданных в ArcGIS Pro.
- Функция DisconnectUser должна использовать административное подключение к базе данных.
- Если пользователь, не являющийся администратором, попытается запустить эту функцию, функция завершится ошибкой.
- Выбор всех пользователей приведет к отключению всех пользователей, кроме подключения администратора, используемого для запуска функции или базы данных.
Синтаксис
DisconnectUser (sde_workspace, {users})
Параметр | Описание | Тип данных |
sde_workspace | The enterprise geodatabase the users will be disconnected from. The connection properties specified in the enterprise geodatabase must have administrative rights that allow the user to disconnect other connections. | String |
users [users,...] | Specifies the users who will be disconnected from the geodatabase.
Примечание:This function will not disconnect the user who is running the function. | 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)