一、问题描述:
以sys登录,执行grant select on v$transaction to username
第 1 行出现错误:
ORA-02030: 只能从固定的表/视图查询
二、问题查找
sys@CLC02> select OBJECT_TYPE from all_objects where lower(object_name)='v$transaction' ;
OBJECT_TYPE
-------------------
SYNONYM
查询对象类型,v$transaction是同义词,不能把同义词赋权给用户
sys@CLC02> SELECT * FROM SYS.ALL_SYNONYMS WHERE SYNONYM_NAME='V$TRANSACTION' ;
OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
------------------------------ ------------------------------ ------------------------------- ------------------- ------------------
PUBLIC V$TRANSACTION SYS V_$TRANSACTION
查询v$transaction的DB_LINK 是v_$transaction
三、解决问题
执行grant select on v_$transaction to username,赋权成功。
就可以username就可以查询v_transaction视图了