U0400004:GaussDB视图不支持SECURITY子句
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB所有版本。
语法示例
默认情况下,UGO保留视图SECURITY子句不转换,并生成此错误提示。
GaussDB视图不支持指定SECURITY子句,如下示例在GaussDB中不支持。
CREATE OR REPLACE SQL SECURITY DEFINER VIEW view_demo AS SELECT * FROM emp_t WHERE deptno = 10;
改造建议
修改“SQL SECURITY子句”转换配置项。
请注意,在MySQL中SQL SECURITY DEFINER表示该对象在执行时将使用其定义者的权限,而SQL SECURITY INVOKER表示该对象在执行时将使用调用者的权限。在GaussDB中默认行为是SECURITY INVOKER,如果想将默认行为改为SECURITY DEFINER权限,需要设置guc参数behavior_compat_options='plsql_security_definer',请充分理解并评估该差异对业务使用的影响。更多详情请参考《GaussDB开发者指南》。