ddanielr commented on PR #5699:
URL: https://github.com/apache/accumulo/pull/5699#issuecomment-3032418061

   > I thought that a user could make it such that root does not have 
permissions on objects. For example:
   > 
   > 1. Root user creates user1
   > 2. Root user gives user1 permission to create namespace
   > 3. user1 creates a namespace and some tables in it
   > 
   > I don't think at this point root can scan the tables in that namespace or 
do anything with them unless user1 gives root those permissions. Am I 
mis-remembering?
   
   You're not mis-remembering but it's not even based on the separate 
namespace. 
   
   The root user has no ability to scan user-created tables even if the root 
user has `SystemPermission.SYSTEM` permissions in that table's namespace.
   
   I added a test in 119d21f to prove that the root user cannot scan a user 
created table in the default namespace. 
   Then I modified the security objects to allow users with SYSTEM level 
permissions to perform table actions in 505f0a2.
   
   This caused the test I added to fail since the root user is now able to scan 
the user-created table so I then updated the test to pass in e81b3f5.
   
   This draft PR was created to try and answer why a root user's permission 
objects change when a root client session is taking the output of a previous 
`./accumulo admin dumpConfig -a` command and attempting to recreate a system 
configuration even when the `root_user.cfg` contents did not contain those 
previous table permissions. 
   
   Currently, if the root user is creating tables, then it is automatically 
granted read permissions on those tables. 
   A user would then need to go back through and modify the root user to remove 
those granted permissions.
   
   This seems like a tedious amount of work and made me question what is the 
purpose of `SystemPermission.SYSTEM` if granular permissions on each table are 
still needed.
   
   I looked at the documentation but didn't see anything that called out the 
specific permissions and their desired goals.
   Some (READ_TABLE, WRITE_TABLE) permissions are self-explanatory but SYSTEM 
seems to be ambiguous.   
   
   **I don't think these changes should be merged in**, but rather used to 
discuss if this permissions model is expected. 
   I.e. if SYSTEM is granted, then why isn't `NAMESPACE_READ` also granted. 
(I''ll update the title to make that clear).
   
   This is in support of adding an easier ability to restore the configuration 
from the current output of `dumpConfig` to help remove hurdles with the upgrade 
process to 4.0. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to