[
https://issues.apache.org/jira/browse/PHOENIX-4657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705347#comment-16705347
]
Geoffrey Jacoby commented on PHOENIX-4657:
------------------------------------------
"Su" as in the Unix utility to become a different user; was trying to make an
analogy.
The difference between the two options you give is that if I have a list of
views from 1000 tenants I want to drop, I shouldn't need to create 1000
connections to drop them. If I have a global view with 1000 children, and I
want to delete along the global view's PK, I shouldn't need to issue 1000
queries.
I'd also point out that the linked Limitations just says that modifying view
data through a base table won't update indexes. It isn't nearly as broad a
limitation as the actual Phoenix behavior. And I'm arguing that we should get
rid of that limitation anyway. :-)
> 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
> Priority: Major
>
> 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)