- 授予使用
dbms_metadata.get_ddl()
的权限
grant select_catalog_role to 用户名;
权限不足时,执行select dbms_metadata.get_ddl('TABLE', '表名', '用户名') from dual
会报ORA-31603
错误
2. 授予v$xxxx
格式命名的系统视图的查询权限。
grant select on v_$xxxx to 用户名;
实际上v$xxx
是视图v_$xxx
的同义词,因此授权时需要根据同义词名查询系统视图实际的名字后才能授权,查询语句如下:
SELECT * FROM DBA_SYNONYMS WHERE SYNONYM_NAME='V$INSTANCE'
-- 从查询结果可知 V$INSTANCE是V_$INSTANCE的同义词,因此正确的赋权命令如下:
GRANT SELECT ON V_$INSTANCE TO 用户名;
如果使用同义词赋权则会报错ORA-01031: insufficient privileges
或者ORA-02030: can only select from fixed tables/views
错误