更新时间:2025-06-04 GMT+08:00
U0400005:GaussDB不支持创建对象时指定定义者
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB所有版本。
语法示例
默认情况下,UGO保留对象定义者不转换,并生成此错误提示。
GaussDB不支持创建对象时通过DEFINER子句指定定义者,如下示例在GaussDB中不支持。
CREATE OR REPLACE DEFINER = my_user@10.10.10.10 VIEW view_demo AS SELECT * FROM emp_t WHERE deptno = 10;
改造建议
修改“对象定义者”转换配置项,可以选择注释定义者部分,或者注释定义者的同时为该对象添加ALTER OWNER语句,修改该对象的OWNER。
请注意,对象的DEFINER还将影响SECURITY DEFINER语句的权限上下文,修改对象的OWNER并不会改变对象的DEFINER(默认情况下,GaussDB中创建对象的用户即该对象的DEFINER,也即原始OWNER),您需要充分评估对象定义者对业务使用的影响。更多详情请参考《GaussDB开发者指南》。