1、创建3个用户 user1 user2 user3,其中user1 创建一张表 test
2、授予user2 对user1视图中test表的select 权限,并且可级联授予
3、user2 授予user3 对user1视图中test表的select权限
4、回收use2 对user1 视图中test表的select权限
5、测试user3是否具有对user1 视图中的test表的select权限
1、创建3个用户 user1 user2 user3,其中user1 创建一张表 test
SQL> create user user1 identified by oracle account unlock;
用户已创建。
SQL> create user user2 identified by oracle account unlock;
用户已创建。
SQL> create user user3 identified by oracle account unlock;
用户已创建。
SQL> grant create session to user1,user2,user3;
授权成功。
SQL> grant create table to user1;
授权成功。
SQL> alter user user1 quota  1m on users;
用户已更改。
SQL> conn user1/oracle
已连接。
SQL> create table test(id int);
表已创建。
SQL> insert into  test values(1);
已创建 1 行。
SQL> insert into  test values(2);
已创建 1 行。
2、授予user2 对user1视图中test表的select 权限,并且可级联授予
SQL> grant select on user1.test to user2 with grant option;
授权成功。
3、user2 授予user3 对user1视图中test表的select权限
SQL> conn user2/oracle
已连接。
SQL> grant select on user1.test to user3;
授权成功。
SQL> select * from user1.test;
        ID
----------
         1
         2
SQL> conn user3/oracle
已连接。
SQL> select * from user1.test;
        ID
----------
         1
         2
4、回收use2 对user1 视图中test表的select权限
SQL> revoke select on user1.test from user2;
撤销成功。
5、测试user3是否具有对user1 视图中的test表的select权限
SQL> conn user2/oracle
已连接。
SQL> select * from user1.test;
select * from user1.test
                    *
第 1 行出现错误:
ORA-00942: ???????
SQL> conn user3/oracle
已连接。
SQL> select * from user1.test;
select * from user1.test
                    *
第 1 行出现错误:
ORA-00942: ???????
结论:对象权限级联授予被撤销后,被级联授予的用户也不具备权限