问题:
SQL> select dbms_metadata.get_ddl('CONSTRAINT','C1','TEST');
select dbms_metadata.get_ddl('CONSTRAINT','C1','TEST');
[-5669]:权限不足
-5669: DBMS_METADATA.GET_DDL line 2395 .
版本:
行号 BANNER
1 DM Database Server 64 V8
2 8.4
3 企业版
4 DB Version: 0x7000c
5 03134284194-20240827-240746-20108
6 Msg Version: 14
7 Gsu level(5) cnt: 0
已经给过的权限:
grant execute on sys.dbms_metadata to test2;
grant select on test.t1 to test2;
grant all on test.t1 to test2;
grant select any table to test2;
grant public,resource,soi,vti to test2;
grant EXECUTE ANY PACKAGE to test2;
其他版本甚至不需要授权就可以用dbms_metadata查询其他用户对象的ddl,似乎只有这个版本不可以,此版本官方文档《系统包使用手册中》提示“用户只能看到自己被授权的对象定义。拥有 DBA/OBJECT_ADMIN 权限可看到其他用户的对象定义。”;授予dba权限后可以正常执行,OBJECT_ADMIN 似乎只有安全版才有,如果不能授予dba权限是否有其他解决方法