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

Derby needs to support drop view cascade in order for revoke privilege to function correctly

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.2.1.6
    • None
    • Documentation, SQL
    • Normal

    Description

      In Derby, you can not drop a view if there is another view based on it. The dependent view has to be dropped before the provider view can be dropped
      eg
      create table t1
      create view v1 as select * from t1
      create view v2 as select * from v1
      drop view v1
      – the drop view v1 will fail because v2 depends on view v1

      This behavior causes a problem with revoke privilege. If a view is dependent on a privilege, then the revoke of the privilege is supposed to drop the view. But that will not happen if there is another view dependent on the already defined view
      eg
      user1
      create table t1
      grant select on t1 to user2
      user2
      create view v1 as select * from t1
      create view v2 as select * from v1
      user1
      revoke select on t1 from user2
      – the above revoke statement will fail because when it tries to dop view v1, it can't do so because view v2 depends on v1
      – the error message returned will be
      ERROR X0Y23: Operation 'DROP VIEW' cannot be performed on object 'V1' because VIEW 'V2' is dependent on that object.

      Until this issue is resolved. we should document this behavior in grant/revoke + view description

      I will attach this Jira entry to DERBY-1611 which is the higher level jira entry for views and revoke privilege

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mamtas Mamta A. Satoor
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: