更新时间: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开发者指南》。