如何创建一个公有同义词,让其他用户可以访问

登录了一个自己创建的用户,然后去创建一个公有同义词,明明各个步骤没有问题,但在其他表空间就是访问不了,使用system等用户却可以访问!

1.确定自己的这个用户是否具有创建公有同义词的权限,不然会提示权限不足

        语法:CREATE [OR REPLACE] PUBLIC SYNONYM synonym_name FOR object_name;

        例:CREATE OR REPLACE PUBLIC SYNONYM p_Stock_Received FOR Stock_Received;

       

        使用其他的用户(如SYSTEM)授予你要创建公有同义词的用户的权限

        语法:GRANT CREATE PUBLIC SYNONYM TO user_name;

        例:GRANT CREATE PUBLIC SYNONYM TO A_hr;

        授权之后,再重新创建公有同义词,这个时候就创建成功了!

2.使用其它用户登录,去访问这个公有同义词,然后找不到这个同义词

        语法:SELECT * FROM synonym_name;

        例:SELECT * FROM p_Stock_Received;

       

3.切换回来,给表授予公有的权限

       语法:GRANT SELECT ON synonym_name TO PUBLIC;

       例:GRANT SELECT ON p_Stock_ReceivedTO PUBLIC;

重新查询一下公有同义词,就查询到数据了!

猜你喜欢

转载自blog.csdn.net/qq_41274102/article/details/81449001