创建数据中心报错“找不到对象、因为它不存在或者您没有所需的权限。”
问题描述
创建管理中心/数据中心时报错“创建失败: 找不到对象“T_META_FORMENUMITEM”,因为它不存在或者您没有所需的权限。”
原因分析和解决思路
此问题一般发生在数据库和管理中心服务器分开部署的环境下。
直接原因是在创建数据库时未能从管理中心获取到模板库文件。
模板库文件是通过在SQL SERVER 里面执行XP_CMDSHELL这个系统存储过程调用PowerShell去请求形如'http://***:8000/CommonFileServer/K3CloudPattrenDbFile/SqlServerMCPatternDB.bak'的地址下载的。常见导致失败的问题原因有以下几点
1、数据库服务器无法通过计算机名称找到正确的管理中心服务器。比如存在计算机重名导致访问到错误的服务器、计算机名称可以解析但是无法访问。
2、管理中心使用的8000端口访问不同。一般是防火墙没开启端口导致。
3、新版的管理中心有IP白名单限制,需要将数据库服务器IP或其网关IP纳入白名单。
4、杀毒软件影响。因为XP_CMDSHELL是可能被病毒/木马利用,所以不少杀毒软件会拦截其操作,建议在数据库服务器上关注杀毒软件的提醒,明确是创建数据中心的操作做放行处理、或在创建数据中心时暂时停用,完成后启用杀毒软件。
5、XP_CMDSHELL未启用。同上一点现场可能因为安全考虑禁用了此存储过程导致无法执行。
6、TEMP目录权限异常。数据库在下载模板库文件时是按操作系统的环境变量存在在TEMP变量对应的目录下。如果此目录SQL SERVER实例的启动用户无权限则也会导致下载失败。
7、POWERSHELL无法运行。如PowerShell不在操作系统PATH环境变量的目录下、或PowerShell因操作系统异常无法启动等。
8、操作系统语言的千分符差异影响。在下载模板库后会尝试检查下载的文件大小是否正常,不同操作系统语言下千分符不一样。目前部分版本因为千分符识别问题可导致异常,如果操作系统语言非中文、前面其他问题都已排除的可能是此情况。
问题排查一般步骤
针对上述问题原因,因为情况多种多样,建议可按以下步骤逐一排查
1、检查服务器的计算机名称是否重名。
2、在数据库服务器上使用浏览器访问管理中心,分别测试以下地址是否可打开
http://管理中心计算机名称:8000、
http://管理中心IP地址:8000
创建管理中心库时能打开网页既可、创建数据中心时应能显示登录界面。如果存在问题可能是原因的第1、2、3点情况。
3、关注杀毒软件的拦截提醒、或暂时关闭/退出杀毒软件。
4、在SQL Server Management Studio里面执行如下命令看是否有错误、能否在操作系统的TEMP目录里生成下载的文件。
EXEC KD_HTTP_DOWNLOAD 'http://管理中心计算机名称:8000/CommonFileServer/K3CloudPattrenDbFile/SqlServerMCPatternDB.bak','SqlServerMCPatternDB.bak',''
此步骤如果异常对应原因5、6、7项。
5、如果数据库服务器操作系统语言非中文的。可以尝试打开“控制面板-区域”执行如下设置
5-1、格式选择“中文(简体、中国)”
5-2、管理-复制设置,勾选“欢迎屏幕和系统帐户”、“新建用户帐户”并确定。
创建数据中心报错“找不到对象、因为它不存在或者您没有所需的权限。”
本文2024-09-23 03:56:18发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162064.html