Github user ankitsinghal commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/283#discussion_r152648189
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/coprocessor/PhoenixAccessController.java
---
@@ -229,17 +227,12 @@ public void
handleRequireAccessOnDependentTable(String request, String userName,
+ dependentTable);
return;
}
- if (isAutomaticGrantEnabled) {
--- End diff --
@karanmehta93
Strict mode:- It will check permissions for dependent tables as well. For
eg, If a user who has all access on data table is creating an index, then we
need to ensure that all others users of data table can also access a new index
table.
AutomaticGrant:- It will automatically grant required permissions to
dependent table users.
@twdsilva , what about the case when a new index is been created?
Purpose of the automatic grant:- let's say there are three users A and B
have READ permission on the data-table and user C has RWC permission on
data-table. so if user B creates an index, then we need to ensure that user A
and C should also be able to read the index and C should be able to write to
this Index and can drop the index also. so we will give only the required
permission to the users of data-table on the index table. So, Access should
propagate like this.
user | access data table | access on index table | with Automatic
grant(access on index table will change like this) | comments
-- | -- | -- | -- | --
A | RAX | no access | RX | RX will be given on index table
B | RX | RWXC | RWXC | no grant will happen
C | RWXAC | no access | RWCX | read ,write and create will be given so that
it can read/write to index table and drop as well.
---