在用户tstcl 下, user tstcl 拥有dba的权限
create or replace synonym p_syn_emp for emp;另一个用户ttt,只拥有create session的系统权限,和 对象权限 select * from tstcl.emp;
这个用户ttt 还要拥有什么权限才可以访问user tstcl 下的私有同义词 p_syn_emp呢
万分感谢

解决方案 »

  1.   

    只要给ttt用户授予create any synonym的权限即可
      

  2.   

    1.SYSTEM(DBA)执行: 
       GRANT CREATE ANY SYNONYM TO ORCL_OWNER 2.ORCL_OWNER用户执行: 
       CREATE SYNONYM "ORCL_QUERY"."T_TABNAME" FOR "ORCL_OWNER"."T_TABNAME" 3.ORCL_OWNER用户执行: 
       GRANT SELECT ON ORCL_OWNER.T_TABNAME TO ORCL_QUERY  
      

  3.   

    登录user tstcl用户然后执行下面的SQL语句,即授权给ttt用户权限使用自己的同义词. GRANT ALL ON EMP TO ttt
      

  4.   

    授权给ttt 要不你就建一个public的
      

  5.   

    先通过dba对ttt赋予create any synonym的权限然后使用ttt登陆后就可以在tstcl.emp上创建同义词p_syn_emp。这时再用p_syn_emp就可以访问到想要的信息。如果是想要直接访问由tstcl 创建的同义词p_syn_emp,可能就要考虑使用public了