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.