Oracle权限赋予的一些事

  1. 授予使用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错误

猜你喜欢

转载自blog.csdn.net/Loiterer_Y/article/details/120013094