这个业务需求其实很常见,比如我们开发好的项目给客户演示,我们一般会创建一个第三方账号作为演示,这个账号的权限只有查询某些表的权限。又比如你参加一个面试,面试的内容为oracle SQL编写能力,需要提供一个账号给面试人员查询,而不想破坏原来线上的数据。
以sysdba账号登录:
[oracle@test11g ~]$ sqlplus / as sysdba
创建一个第三方账号(test)
SQL> create user test identified by test;
User created.
用户授权,不要给以dba权限,切记。
SQL> grant connect,resource to test;
Grant succeeded.
给以某张(些)表的查询权限
SQL> grant select on hbk.T1 to test;
Grant succeeded.
建立同义词
SQL> create or replace synonym test.T1 for hbk.T1;
Synonym created.
可以看到表没有,出现在同义词这里,而且可以通过oracle sql developer等客户端工具查询到相关数据。