You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a bug in the Grants API for the Table ACLs. It does not support concurrent grant/revoke operations.
TableAcl grant/revoke operations are not atomic. When granting the permissions, the service would first get all existing permissions, append with the new permissions, and set the full list in the database. If there are concurrent grant requests, both requests might succeed and emit the audit logs, but what actually happens could be that the new permission list from one request overrides the other one, causing permission loss.
We won't hit the issue as long as we grant permissions for one securable to one user in one grant/statement. e.g.,
GRANT SELECT, CREATE, MODIFY ON table my_table TO some-user
Possible solutions:
Remove threading from Table ACLs
Fold actions belonging to the same principal, object type and id into one grant statement (better)
mwojtyczka
changed the title
Remove threading from Table ACLs
Remove threading from Table ACLs to avoid concurrency issue in the Table ACLs
Oct 25, 2023
mwojtyczka
changed the title
Remove threading from Table ACLs to avoid concurrency issue in the Table ACLs
Remove threading from Table ACLs to avoid concurrency issue in the Grants API
Oct 25, 2023
mwojtyczka
changed the title
Remove threading from Table ACLs to avoid concurrency issue in the Grants API
Fold actions to apply permissions per principal, object type and object id in one transaction
Oct 27, 2023
mwojtyczka
changed the title
Fold actions to apply permissions per principal, object type and object id in one transaction
Mitigate issue that Table ACL grants are not atomic
Oct 27, 2023
There is a bug in the Grants API for the Table ACLs. It does not support concurrent grant/revoke operations.
We won't hit the issue as long as we grant permissions for one securable to one user in one grant/statement. e.g.,
GRANT SELECT, CREATE, MODIFY ON table my_table TO
some-user
Possible solutions:
ES ticket for reference.
The text was updated successfully, but these errors were encountered: