本文介绍提交数据变更工单时常见的报错及解决方案。
根据安全规则设置,禁止直接执行命令类型:XXXX或不允许提交类型为XXXX的变更语句
报错示例:
SQL类型检查不通过,根据安全规则设置,禁止直接执行命令类型:XXXX,如果需要,请联系DBA或管理员调整!调整规则的入口路径:安全与规范->安全规则->编辑->SQL变更->SQL执行规则,未匹配到该命令类型的任何规则,默认禁止执行
报错原因:安全协同模式的数据库绑定的安全规则不允许执行或提交该SQL命令,因此该命令会被拦截。
解决方案:禁止执行或不允许提交的SQL命令类型有非UNKNOW(DMS正常识别的SQL命令)和UNKNOW(DMS不能识别的SQL命令)两种,您可按需选择解决方案。
非UNKNOW
DMS可正常识别到非UNKNOW类型的命令,但当前的安全规则默认不允许该命令执行,请联系DBA或管理员,调整对应的安全规则。调整规则的具体操作如下。
查看安全规则集名称。
进入数据变更工单详情页,单击右上方的操作日志,查看规则集名称。
调整安全规则。
登录数据管理DMS 5.0。
在顶部菜单栏中,选择
。在安全规则页签中,单击目标规则集操作列下的编辑。
在左侧导航栏中,单击SQL变更。
根据报错提示选择检测点。例如上述报错示例中检测点需选择SQL执行规则。
选择待调整的安全规则,并单击操作列下的编辑。
说明根据错误提示命令所属的SQL语言类型选择待调整的安全规则。例如,错误提示的命令类型为CREATE_INDEX,则需要选择DDL相关的安全规则。
将报错提示的SQL类型添加至对应安全规则的规则DSL中。
例:失败原因提示禁止执行命令类型:CREATE_INDEX,您需要将该类型命令加入DDL提交工单的相关规则中,如下图所示。
单击提交。
调整完成后,您需要在工单详情页的预检查区域,单击重试,DMS将会重新进行类型检查。
UNKNOW
检查您提交的SQL语句是否有误。若有误,请在预检查区域单击修改SQL,确认修改后再单击重试,重新进行类型检查。
若您提交的SQL无误,请单击预检查区域的查看详情,筛选并查看被标识为UNKNOW的SQL语句,再联系管理员或DBA将被标识的SQL语句添加至安全规则中,并允许该语句在DMS执行,提交完成后,再单击重试。调整识别规则的操作步骤,请参见调整安全规则。
检查影响行数失败,语法检查失败
报错示例:
检查影响行数失败,语法检查失败,错误信息:ERROR. pos 37,line 1,column 31,token WHERE
报错原因:提交工单进行数据变更的预检查阶段,DMS会通过检查扫描行数再次检查SQL语句的语法是否有误。
解决方案:检查您提交的SQL语句的语法是否有误。
若SQL语法有误,请在修改SQL后,单击预检查区域的重试,DMS将重新检查扫描行数。
在确保SQL语法无误后,您可以单击预检查区域的检查扫描行数右侧的跳过,忽略该错误。