[ 
https://issues.apache.org/jira/browse/TRAFODION-2600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16440122#comment-16440122
 ] 

ASF GitHub Bot commented on TRAFODION-2600:
-------------------------------------------

GitHub user robertamarton opened a pull request:

    https://github.com/apache/trafodion/pull/1520

    [TRAFODION-2600] Unable to create view ... but user has SELECT privilege

    Query invalidation is not resetting the role list when a user is granted a 
role.
    For DML operations, we always retry the request once, and between retries, 
the
    role list is reset.  So DML works on a retry.
    However, DDL operations are not retried, so the role list is not reset and 
the
    create view fails.
    
    An analogous issue exists when the role is revoked from a user and the role
    list is not reset.  In this case, the user can still create views even 
though
    they no longer have the privilege.
    
    Changes:
    - Grant role: sends a new query invalidation key
    - Revoke role: forces a query invalidation check even if the key is not 
present
    - Displays query invalidation keys when debug option DBUSER_DEBUG is set, 
e.g:
       set envvar DBUSER_DEBUG 1;

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/robertamarton/incubator-trafodion jira-2600

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/trafodion/pull/1520.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1520
    
----
commit f9820b26144a45b7c7cbdedaeefc832f150f5d45
Author: Roberta Marton <roberta.marton@...>
Date:   2018-04-16T22:26:07Z

    [TRAFODION-2600] Unable to create view ... but user has SELECT privilege
    
    Query invalidation is not resetting the role list when a user is granted a 
role.
    For DML operations, we always retry the request once, and between retries, 
the
    role list is reset.  So DML works on a retry.
    However, DDL operations are not retried, so the role list is not reset and 
the
    create view fails.
    
    An analogous issue exists when the role is revoked from a user and the role
    list is not reset.  In this case, the user can still create views even 
though
    they no longer have the privilege.
    
    Changes:
    - Grant role: sends a new query invalidation key
    - Revoke role: forces a query invalidation check even if the key is not 
present
    - Displays query invalidation keys when debug option DBUSER_DEBUG is set, 
e.g:
       set envvar DBUSER_DEBUG 1;

----


> Unable to create view (lack of SELECT privilege) but user has SELECT privilege
> ------------------------------------------------------------------------------
>
>                 Key: TRAFODION-2600
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2600
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-security
>            Reporter: Roberta Marton
>            Assignee: Roberta Marton
>            Priority: Major
>
> User unable to create a view because of missing SELECT privilege but user has 
> been granted privilege through a role.
> admin 
>  - creates role1;
>  - creates table1 - grant select on table1 to role1
> user1
>  - tries to create a view - unable because of no SELECT priv
> admin 
>  - grants role1 to user1
> User1
>  - still unable to create view
>  - if user1 selects from table1 - it succeeds and a subsequent create view 
> works.
> When a user connects, its list of active roles are stored in cache. 
> If the user is subsequently granted new roles, the in memory list should be 
> updated.  For DML requests, the in memory list is updated.  For DDL requests, 
> the in memory list is not updated.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to