Geoffrey Jacoby created PHOENIX-4657:
----------------------------------------

             Summary: Allow global connections to see tenant-owned objects
                 Key: PHOENIX-4657
                 URL: https://issues.apache.org/jira/browse/PHOENIX-4657
             Project: Phoenix
          Issue Type: New Feature
    Affects Versions: 4.13.0
            Reporter: Geoffrey Jacoby


Views and indexes created by tenant connections are invisible to global 
connections. This is problematic in environments where normal users are always 
assigned tenant connections but system-level processes and admin tools use 
globals. 

A user can create a view or index that an administrator using, say, sqlline, 
cannot easily drop.

In offline conversations, I've learned that one reason for this is 
disambiguation: tenant A and tenant B can both create an object called 
"Test.Foo". 

One straightforward way around this problem is to allow the global connection 
to fully qualify the object name. For example, to drop the views in the above 
example, a user could do the following:

DROP VIEW IF EXISTS "A".Test.Foo

DROP VIEW IF EXISTS "B".Test.Foo

(The quotes are there to disambiguate <tenant_id>.<view name> from 
<schema>.<view_name>)

If some environments wish to forbid global connections from seeing tenant-owned 
objects (the old behavior), this could perhaps be configurable server-side in 
hbase-site.xml, or alternately, by an enhancement to the GRANT functionality.



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

Reply via email to