操作方法

错误:提供的连接信息适用于非管理用户

Last Published: February 19, 2025

描述

在 Python 脚本中使用 ArcPy.DisconnectUser 函数作为计划任务,断开用户与企业级数据库的连接将失败,并返回以下错误消息:

Error:
RuntimeError:Connection information provided was for a non-administrative user

即使该用户拥有访问数据库或进行数据库身份验证的某些管理权限,并且连接文件已存储凭据,该错误仍然发生。

Note:
ArcGIS Enterprise supports several different databases. Each vendor has a different definition and permission set for the administrator role. For more information about the geodatabase administrator, and on the privileges needed based on a person's role in the organization, see the help page specific to the database management system you use. See also: ArcGIS Pro: Geodatabase management

原因

可能的原因包括:

  • 用户不是管理员,或不具备断开其他用户连接的相应权限。 这是 ArcMap:DisconnectUser 中描述的已知限制。
  • 数据库正在主动接受连接,在这种情况下,即使管理员访问数据库,也会返回错误。

解决方案或解决方法

使用 admin 用户账户断开用户连接。 如果已授予正确的权限但问题仍然存在,请通过拒绝新的数据库连接并实施时间模块来解决此问题,从而确保正在进行的连接尝试失败。 按照提供的步骤完成此操作。

  1. 导入所需的模块。
import arcpy
import time
  1. 指定所需工作空间。
admin_workspace = '[SDECONNECTIONFILE]'
arcpy.env.workspace = admin_workspace
  1. 阻止与数据库的新连接。
arcpy.AcceptConnections(admin_workspace, False)
  1. 实施时间模块,等待所有活动连接中断。
time.sleep(120)
  1. 断开所有用户与数据库的连接。
arcpy.DisconnectUser(admin_workspace, "ALL")

以下为完整代码:

import arcpy
import time

admin_workspace = 'Database Connections\sample_connection.sde'
arcpy.env.workspace = admin_workspace

arcpy.AcceptConnections(admin_workspace, False)
time.sleep(120)

arcpy.DisconnectUser(admin_workspace, "ALL")

文章 ID: 000018531

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项