前几天客户遇上这样一个问题,某个用户A将视图的SELECT给予另一个用户B,但是用户B查询这个视图时,仍然报错:ORA-01031: 权限不足。这是怎么一回事呢?下面来模拟一下这个过程: 有三个用户test1,test2,test3, 三个用户都具有DBA色色权限。 用TEST1用户创建一个表T1,并将其查询权限授予TEST2: <!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->SQL> create table t1 as select * from all_objects;
表已创建。
SQL> grant select on t1 to test2;
授权成功。
SQL> create table t1 as select * from all_objects;
表已创建。
SQL> grant select on t1 to test2;
授权成功。 用TEST2用户创建一个视图,视图的基表是TEST1.T1,并将查询权限授予TEST3:<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> SQL> create view v_t1 as select * from test1.t1;
视图已建立。
SQL> grant select on v_t1 to test3;
授权成功。
SQL> create view v_t1 as select * from test1.t1;
视图已建立。
SQL> grant select on v_t1 to test3;
授权成功。 TEST3用户查询视图TEST2.V_T1:<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->SQL> select * from test2.v_t1 where rownum<1;
select * from test2.v_t1 where rownum<1
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
SQL> select * from test2.v_t1 where rownum<1;
select * from test2.v_t1 where rownum<1
*
ERROR 位于第 1 行:
ORA-01031: 权限不足 可以看到报了权限不足的错误,就算这里TEST3用户有DBA权限。 这到底是怎么回事呢?
mysqld随Linux开机自动启动Linux系统中安装Oracle 11g的安装文档相关资讯 oracle
- [INS-32052] Oracle基目录和Oracle (07/22/2014 07:41:41)
- Oracle 4个大对象(lobs)数据类型 (02/03/2013 12:33:05)
- Oracle按时间段分组统计 (07/26/2012 10:36:48)
| - [Oracle] dbms_metadata.get_ddl的 (07/12/2013 07:37:30)
- Liferay Portal 配置使用Oracle和 (07/31/2012 20:07:18)
- Concurrent Request:Inactive (07/20/2012 07:44:05)
|
本文评论 查看全部评论 (0)