Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-1715

Revoke fails when grantee declares additional view that is on top of the view to be dropped

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 10.2.1.6
    • None
    • SQL
    • None
    • Sun JDK 1.4.2

    Description

      Grantor attempts to revoke select privilege on a table from a user but the user have declare multiple views in a hiearchical manner that references one another. Revoke should succeed in this case but it is not. e.g.:

      ij version 10.2
      ij> connect 'jdbc:derby:grt;create=true' user 'user1' as user1;
      WARNING 01J14: SQL authorization is being used without first enabling authentication.
      ij> create table t1 (i int);
      0 rows inserted/updated/deleted
      ij> insert into t1 values 1;
      1 row inserted/updated/deleted
      ij> grant select on t1 to user2;
      0 rows inserted/updated/deleted
      ij> connect 'jdbc:derby:grt' user 'user2' as user2;
      WARNING 01J14: SQL authorization is being used without first enabling authentication.
      ij(USER2)> select * from user1.t1;
      I
      -----------
      1

      1 row selected
      ij(USER2)> create view v1 as select * from user1.t1;
      0 rows inserted/updated/deleted
      ij(USER2)> create view v2 as select * from user2.v1;
      0 rows inserted/updated/deleted
      ij(USER2)> create view v3 as select * from user2.v2;
      0 rows inserted/updated/deleted
      ij(USER2)> set connection user1;
      ij(USER1)> revoke select on t1 from user2;
      ERROR X0Y23: Operation 'DROP VIEW' cannot be performed on object 'V1' because VIEW 'V2' is dependent on that object.
      ERROR X0Y23: Operation 'DROP VIEW' cannot be performed on object 'V1' because VIEW 'V3' is dependent on that object.
      ij(USER1)> set connection user2;
      ij(USER2)> select * from user1.t1;
      I
      -----------
      1

      1 row selected
      ij(USER2)> select * from user2.v1;
      I
      -----------
      1

      1 row selected
      ij(USER2)> select * from user2.v2;
      I
      -----------
      1

      1 row selected
      ij(USER2)> select * from user2.v3;
      I
      -----------
      1

      1 row selected
      ij(USER2)>

      sysinfo:

      ------------------ Java Information ------------------
      Java Version: 1.4.2_12
      Java Vendor: Sun Microsystems Inc.
      Java home: C:\Program Files\Java\j2re1.4.2_12
      Java classpath: derby.jar;derbytools.jar
      OS name: Windows XP
      OS architecture: x86
      OS version: 5.1
      Java user name: Yip
      Java user home: C:\Documents and Settings\Yip
      Java user dir: C:\work3\derby\tests\derby-10.2.1.0\lib
      java.specification.name: Java Platform API Specification
      java.specification.version: 1.4
      --------- Derby Information --------
      JRE - JDBC: J2SE 1.4.2 - JDBC 3.0
      [C:\work3\derby\tests\derby-10.2.1.0\lib\derby.jar] 10.2.1.0 beta - (430903)
      [C:\work3\derby\tests\derby-10.2.1.0\lib\derbytools.jar] 10.2.1.0 beta - (430903)
      ------------------------------------------------------
      ----------------- Locale Information -----------------
      Current Locale : [English/United States [en_US]]
      Found support for locale: [de_DE]
      version: 10.2.1.0 - (430903)
      Found support for locale: [es]
      version: 10.2.1.0 - (430903)
      Found support for locale: [fr]
      version: 10.2.1.0 - (430903)
      Found support for locale: [it]
      version: 10.2.1.0 - (430903)
      Found support for locale: [ja_JP]
      version: 10.2.1.0 - (430903)
      Found support for locale: [ko_KR]
      version: 10.2.1.0 - (430903)
      Found support for locale: [pt_BR]
      version: 10.2.1.0 - (430903)
      Found support for locale: [zh_CN]
      version: 10.2.1.0 - (430903)
      Found support for locale: [zh_TW]
      version: 10.2.1.0 - (430903)
      ------------------------------------------------------

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              yipng Yip Ng
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: