B22DCCN393 Nguyễn Việt Huy
12/24/2025, 10:12 AMAlon Boshi
12/24/2025, 10:16 AMAsk Inkeep
12/24/2025, 10:16 AMAsk Inkeep
12/24/2025, 10:16 AMaccess-control.properties file (1) :
access-control.name=opa
opa.policy.uri=http://<pdp-host>:7766/trino/allowed
opa.policy.row-filters-uri=http://<pdp-host>:7766/trino/row-filter
opa.policy.batch-column-masking-uri=http://<pdp-host>:7766/trino/batch-column-masking
The documentation doesn't describe built-in support for routing authorization requests to different PDP instances based on catalog or resource attributes. This is a limitation on Trino's side—Trino's OPA plugin currently only supports connecting to a single authorization endpoint .
*Potential approaches to consider:*
1. *Single PDP with unified policy*: Deploy one PDP that handles authorization for all catalogs, with policies configured per-catalog resource in Permit
2. *Dedicated Permit environment per cluster*: Use a dedicated Permit project/environment for each Trino cluster if you need isolated authorization
3. *Load balancer with custom routing*: Place a routing layer (reverse proxy) in front of multiple PDPs that routes based on request attributes—though this would require custom implementation outside of Permit
For your specific use case (SqlDB1 → OPA1, SqlDB2 → OPA2) , you'd likely need to implement custom routing logic at the infrastructure level, as neither Permit nor Trino's OPA plugin natively supports this pattern.
I'd recommend reaching out directly to discuss your architecture needs—email help@permit.io for further guidance on this advanced use case.Ask Inkeep
12/24/2025, 10:16 AMDan
12/25/2025, 4:04 PMhttp.send to reverse-proxy the check to other OPA instances. That said, it may introduce performance issues and complications around top-level checks that are not associated with any specific catalog in Trino (e.g. execute_query)
Using Permit PDP, you are able to easily scale out your PDPs to support the high throughput needed for Trino authorization checks, and you can fully isolate permission policies for each of your catalogs.
You can read about the Trino Integration more in this tutorial:
https://docs.permit.io/integrations/database-access-control/trino-integration
Feel free to reach out if you have further questions 🌟