@fjrodriguez the key is to keep one policy source while accepting two enforcement points. Informatica should own the business intent and approval; Unity Catalog and Power BI should enforce platform-specific artifacts generated from the same versioned policy contract.
For Unity Catalog, use a platform-owned pipeline to translate that contract into governed tags and ABAC policies. Grant the service principal narrowly scoped privilegesโfor example, ASSIGN and APPLY TAG, plus scope-level MANAGE and EXECUTE on any policy UDFโrather than metastore ownership.
โDatabricks recommends ABAC policies when you need consistent row filtering and column masking across many tables.โ Databricks documentation
For AI/BI dashboards, use Individual data permissions when policies must be evaluated for each viewer; shared permissions execute as the publisher. Genie applies Unity Catalog row filters and column masks per user.
Power BI Import mode cannot pass the report consumerโs identity back to Unity Catalog. You therefore cannot remove Power BI-side enforcement, but you can remove manual policy re-authoring: generate a dynamic RLS entitlement table keyed by USERPRINCIPALNAME() from the same policy contract. For column restrictions, use OLS, exclude sensitive columns, or import a pre-masked projection. Keep consumers in Viewer or app roles because RLS does not restrict workspace Admin, Member, or Contributor roles.
For audit evidence, retain the policy version, effective date, deployment manifest, and test results. Compare SHOW EFFECTIVE POLICIES, system.information_schema.abac_policy_definitions, and system.access.audit with the deployed Power BI model roles. Run identical positive and negative test identities against both platforms. Deployment records show what was configured; identity-based tests demonstrate equivalent enforcement.