Sushanth Sowmyan created HIVE-5479: -------------------------------------- Summary: SBAP restricts hcat -e 'show databases' Key: HIVE-5479 URL: https://issues.apache.org/jira/browse/HIVE-5479 Project: Hive Issue Type: Bug Components: Authorization, HCatalog Affects Versions: 0.12.0 Reporter: Sushanth Sowmyan Assignee: Sushanth Sowmyan
During testing for 0.12, it was found that if someone tries to use the SBAP as a client-side authorization provider, and runs hcat -e "show databases;", SBAP denies permission to the user. Looking at SBAP code, why it does so is self-evident from this section: {code} @Override public void authorize(Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv) throws HiveException, AuthorizationException { // Currently not used in hive code-base, but intended to authorize actions // that are directly user-level. As there's no storage based aspect to this, // we can follow one of two routes: // a) We can allow by default - that way, this call stays out of the way // b) We can deny by default - that way, no privileges are authorized that // is not understood and explicitly allowed. // Both approaches have merit, but given that things like grants and revokes // that are user-level do not make sense from the context of storage-permission // based auth, denying seems to be more canonical here. throw new AuthorizationException(StorageBasedAuthorizationProvider.class.getName() + " does not allow user-level authorization"); } {code} Thus, this deny-by-default behaviour affects the "show databases" call from hcat cli, which uses user-level privileges to determine if a user can perform that. -- This message was sent by Atlassian JIRA (v6.1#6144)