在Oracle中,一个用户想访问其他用户的表时,首先要获得访问的权限,然后可以通过用户.表名的方式访问该表。
比如我有一个新创建的用户,axing。
若想访问scott的数据表,必须先授权,在scott用户下执行以下语句:
grant select any table to axing;
然后可以在axing用户下查询:
select * from scott.emp
每次访问的时候都要在前面加上scott.特别麻烦,有没有什么办法去掉呢。
(1)创建视图
create view_emp as select * from scott.emp
(2)创建同义词
首先要在管理员账户下,授予用户axing具有创建同义词的权限。
grant create synonym to axing;
然后在axing账户下创建同义词:
create synonym emp for scott.emp
接下来就可以直接查询了:
select * from emp