您的位置:首页 > 数据库 > Oracle

Oracle 授予Synonym访问权限于其他用户,需要有源表的访问授权

2011-04-03 15:14 639 查看
前天在数据仓库建立同义词后,把同义词select权限授权给用户stg时,遇到了“ORA-01031: 权限不足”的问题。
让我觉得奇怪的是,该同义词所在的对象本来就是属于stg。 下面演示具体过程:
sqlplus / as sysdba
SQL> create user stg identified by stg default tablespace "TBSPACE0530";

用户已创建。

SQL> grant connect, create table to stg;

授权成功。

SQL> alter user stg quota unlimited on "TBSPACE0530";

用户已更改。

SQL> create user tar identified by tar ;

用户已创建。

SQL> grant connect to tar;

授权成功。


sqlplus stg/stg@tian
SQL> create table stg.tmp_test(a number, b varchar2(20));

表已创建。

SQL> grant select on stg.tmp_test to tar;

授权成功。


sqlplus tar/tar@tian
SQL> create synonym tar.tmp_test for stg.tmp_test;

同义词已创建。

SQL> grant select on tar.tmp_test to stg;
grant select on tmp_test to stg
*
第 1 行出现错误:
ORA-01031: 权限不足  

出现这个问题后,我把授权语句“grant select on stg.tmp_test to tar”加上了"with grant option"后,就可以了。
sqlplus stg/stg@tian
SQL> grant select on stg.tmp_test to tar with grant option;  

授权成功。


sqlplus tar/tar@tian
SQL> grant select on tar.tmp_test to stg;

授权成功。


sqlplus stg/stg@tian
SQL> select * from tar.tmp_test;

未选定行

可见,Oracle对权限控制还是很严格的!本文出自 “做个IT人” 博客,请务必保留此出处http://tianyu1102.blog.51cto.com/1416913/534425
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐