Chinmay Kulkarni created PHOENIX-5274:
-----------------------------------------

             Summary: ConnectionQueryServiceImpl#ensureNamespaceCreated and 
ensureTableCreated should use HBase APIs that do not require ADMIN permissions 
for existence checks
                 Key: PHOENIX-5274
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5274
             Project: Phoenix
          Issue Type: Improvement
    Affects Versions: 5.0.0, 4.15.0, 4.14.2
            Reporter: Chinmay Kulkarni
            Assignee: Chinmay Kulkarni
             Fix For: 4.15.0, 4.14.2, 5.0.0


[HBASE-22377|https://issues.apache.org/jira/browse/HBASE-22377] will introduce 
a new API that does not require ADMIN permissions to check the existence of a 
namespace.

Currently, CQSI#ensureNamespaceCreated calls HBaseAdmin#getNamespaceDescriptor 
which eventually on the server causes a call to 
AccessController#preGetNamespaceDescriptor. This tries to acquire ADMIN 
permissions on the namespace. We should ideally use the new API provided by 
HBASE-22377 which does not require the phoenix client to get ADMIN permissions 
on the namespace. We should acquire ADMIN permissions only in case we need to 
create the namespace if it doesn't already exist.

Similarly, CQSI#ensureTableCreated should first check the existence of a table 
before trying to do HBaseAdmin#getTableDescriptor since this requires CREATE 
and ADMIN permissions.





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

Reply via email to