假如Oracle中有兩個用戶A和B,那麼如果A要訪問B擁有的表,語句應該是:
代碼如下:
SELECT * FROM B.TABLENAME。
我要問的是,能否通過修改Oracle的設置,將A訪問B擁有表的語也變為跟B用戶登錄一樣的語句:SELECT * FROM TABLENAME?
代碼如下:
create synonym tablename for B.TABLENAME;
除了一樓的創建同義詞外,還要授予A用戶訪問改同意詞的權限.
代碼如下:
drop synonym tablename ;
1 可以使用查詢生成sql語句,比如
代碼如下:
select 'CREATE SYNONYM '||table_name||' FOR A.'||table_name from dba_tables where owner = 'A'
然後執行這些sql語句。 或者寫存儲過程實現.
2 select any table 權限可以允許訪問所有表