[ 
https://issues.apache.org/jira/browse/DERBY-2594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12492206
 ] 

Dyre Tjeldvoll commented on DERBY-2594:
---------------------------------------

It is quite possible that a new action isn't required. I wasn't
sure so I played it safe.

I didn't mean to say that GrantRevokeConstantAction should call
invalidateFor directly (although it certainly could seem
so). Currently the stack looks like this:

GrantRevokeConstantAction -> XPrivilegeInfo -> invalidateFor(XPermsDescriptor, 
ACTION)

So we should add 

GrantRevokeConstantAction -> XPrivilegeInfo -> invalidateFor(XDescriptor, 
INTERNAL_COMPILE_REQUEST)

?

This will work for tables, but I haven't checked for
RoutinePermsDescriptor and RoutineDescriptor. That is, I haven't
verified that all statements that depend on a Routine actually
are Dependents of the RoutineDescr.


> Revoking a privilege from an SQL Object should invalidate statements 
> dependent on that object
> ---------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2594
>                 URL: https://issues.apache.org/jira/browse/DERBY-2594
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.2.1.6
>            Reporter: Dyre Tjeldvoll
>         Assigned To: Dyre Tjeldvoll
>
> Revoking a privilege on a table will currently cause the 
> DependencyManager.invalidateFor() to be called on the table's 
> TablePermsDescriptor with the action=REVOKE_PRIVILEGE. However, the prepared 
> statements that refer to that table are dependents of the table's 
> TableDescriptor, but NOT its TablePermsDescriptor, so the statements are not 
> invalidated after revoke.
> This problem is currently hidden by the fact that authorization is checked on 
> every execution, but this will change when language result sets are no longer 
> reused (see DERBY-827). 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to