在DMS中执行SQL语句后出现“禁止未知SQL执行”报错
更新时间:
问题描述
在使用DMS控制台时,执行SQL语句后,执行结果出现以下报错。
自定义安全规则:禁止未知SQL执行
问题原因
DMS控制台的安全规则中,默认未配置相关SQL语句允许执行,因此执行相关SQL语句时,会被拒绝执行。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
- 登录DMS控制台。
- 单击顶部导航栏中的安全与规范。
- 单击安全规则,单击mysql default规则右侧的编辑,设置数据库的安全规则。
注意:此处演示实例安全规则为mysql default,具体操作以您实例当前关联的安全规则为准。关于如何查看实例当前关联的安全规则,请参见更多信息。
- 单击页面左侧的SQL变更。
- 若已有相关规则,则可直接单击规则右侧的编辑,对安全规则进行编辑。若需新增相关规则,则单击新增规则,对规则进行编辑。以下是基于mysql default安全规则,描述解除禁止未知SQL执行规则的DSL语法。
if
@fac.sql_type in
[ 'INSERT','INSERT_SELECT','REPLACE','REPLACE_INTO','UPDATE','DELETE','MERGE','REMOVE', 'EXEC']
then
@act.allow_execute_direct
end说明:DMS定义了一套领域专用语言DSL(Domain Specific Language)用来描述安全规则,关于如何使用DSL语法,请参见安全规则DSL语法。
- 在DMS控制台中,进入SQL Console页面,输入需要执行的SQL语句,然后单击执行。
- 查看执行结果中的信息,确认可以正常执行相关SQL语句。
更多信息
- 登录DMS控制台。
- 在页面左侧的实例列表中,右键单击目标实例名称。
-
在弹出的右键菜单中,将鼠标依次移动到管控模式>安全协同,子菜单会展示实例当前关联的安全规则。
适用于
- 数据管理DMS
文档内容是否对您有帮助?