Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
10.2.1.6
-
None
-
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
- is part of
-
DERBY-1611 A view should be dropped when a privilege required by the view is revoked.
- Closed
- is related to
-
DERBY-1330 Provide runtime privilege checking for grant/revoke functionality
- Closed