hongkunxu opened a new pull request, #20167:
URL: https://github.com/apache/pinot/pull/20167

   ## Summary
   
   Fix an authorization mismatch between the Controller and Broker for 
single-stage queries against logical tables.
   
   A user with read access to `airlineStats` can query a logical table 
referencing `airlineStats_REALTIME` directly through the Broker, but receives 
`AccessDenied` through the Controller `/sql` endpoint and query console. The 
Controller incorrectly checks permission on the logical table name.
   
   ## Changes
   
   - Authorize logical-table queries against every underlying physical table, 
matching Broker behavior.
   - Resolve the canonical logical table name through the table cache before 
selecting a Broker.
   - Add regression coverage for OFFLINE, REALTIME, and hybrid logical tables, 
denied physical-table access, and case/database resolution.
   
   Access to the reference table alone is insufficient when the logical table 
includes additional physical tables: all underlying tables must be authorized.
   
   ## Testing
   
   - `PinotQueryResourceTest`: 53 tests passed.
   - Formatting, checkstyle, and license checks passed.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to