Forum Discussion
How to hide semantic model data from Power BI Copilot
Hi,
We have been using Power BI Copilot almost since the beginning. We temporarily disabled it after noticing that users were able to query the semantic model through Copilot and see information they were not supposed to access. We want to enable Copilot again, and therefore we modified our models by removing sensitive data or applying RLS. However, we cannot use OLS or the isPrivate property in all cases because:
- OLS prevents data from being used in the report, even by users who should be able to see it.
- isPrivate / Private hides the entire table from report authors, which prevents building the report at all.
Because we cannot remove all sensitive fields or place everything behind RLS, we tried using Hide in Report View on tables and columns. In our initial testing this worked: Copilot did not show hidden fields. Then we discovered a new issue, hidden objects become visible to new users in Copilot.
- When a report is shared with a new user, hidden tables/columns become visible to them through Copilot.
- If the model is then republished (after a minor change in Desktop or Fabric Service), that user can no longer see the hidden objects.
- However, if the report is shared with a third user, that person will again see the hidden objects—until the model is republished.
So hiding is not consistent and cannot be used as a reliable method for restricting Copilot access.
Are there any supported and reliable ways to prevent Copilot from accessing sensitive fields in the semantic model in scenarios where:
- RLS is not applicable
- OLS breaks report usability
- isPrivate prevents report building
- Hide in Report View behaves inconsistently with Copilot
Any advice on good ways to hide data from Copilot would be really helpful.
Thanks in advance!
Hi pjuvalainen ,
What you’re seeing aligns with how Copilot is currently designed and documented. The Prep data for AI feature, including instructions or verified answers, helps improve the quality of responses, but it’s not meant to control or restrict access to data.Copilot works on the entire semantic model based on user permissions and can read metadata and column values, which is why it may return data beyond what you specifically selected.
To properly control what users can access, you’ll need to rely on data governance practices, such as limiting access to the semantic model,especially Build permission, using RLS or object-level security, separating sensitive data into different models, or disabling Copilot at the tenant level if needed.
Refer these docs -
https://learn.microsoft.com/power-bi/create-reports/copilot-introduction
https://learn.microsoft.com/power-bi/create-reports/copilot-prepare-data-ai-verified-answers
https://learn.microsoft.com/fabric/fundamentals/copilot-power-bi-privacy-security
7 Replies
- wardy912Super User
Hi pjuvalainen
Tough issue to give you a direct answer for, but here's a couple of links that should point you in the right direction:
Prepare Your Data for AI - Power BI | Microsoft Learn
powerbi-docs/powerbi-docs/create-reports/copilot-prepare-data-ai-instructions.md at main · MicrosoftDocs/powerbi-docs · GitHub--------------------------------
I hope this helps, please give kudos and mark as solved if it does!
Connect with me on LinkedIn.
Subscribe to my YouTube channel for Fabric/Power Platform related content!
- v-sshirivoluCommunity Support
HI pjuvalainen ,
An approach that aligns closely with Microsoft Power BI’s official guidance is to prepare the semantic model specifically for Copilot, rather than depending on Hide in Report View, which is not intended as a security boundary. Microsoft advises utilizing the 'Prep data for AI' feature and establishing an AI data schema within the semantic model. This allows you to clearly specify which tables and columns Copilot should evaluate when responding to prompts. Sensitive fields can remain in the model for normal report functionality but can be excluded from the metadata Copilot accesses. As a result, Copilot focuses only on the designated fields, minimizing the risk of exposing hidden or sensitive columns through Copilot queries.
This method is consistent with Microsoft’s recommendations for preparing semantic models for AI features and offers greater reliability compared to relying on hidden fields, which are primarily intended for report authoring convenience rather than limiting Copilot access.
Thank you.- v-sshirivoluCommunity Support
Hi pjuvalainen ,
I hope the above details help you fix the issue. If you still have any questions or need more help, feel free to reach out. We’re always here to support you- v-sshirivoluCommunity Support
Hi pjuvalainen ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions.
- pjuvalainenFrequent Visitor
Thank you for the responses!
I tested the Prep data for AI feature, and at first it looked very promising. However, when I continued asking Copilot questions such as “show the content of 'table'[column]” or “list all data from the 'table'”, Copilot eventually listed the content of that column or the entire table even though it had not been selected for the analysis.
Copilot was also tested by another user who had either read or app permissions to the semantic model, and the results were the same.
This behavior may be due to the feature still being in preview, but based on these experiences, we do not feel confident enabling Power BI Copilot again due to data security concerns.
- v-sshirivoluCommunity Support
Hi pjuvalainen ,
What you’re seeing aligns with how Copilot is currently designed and documented. The Prep data for AI feature, including instructions or verified answers, helps improve the quality of responses, but it’s not meant to control or restrict access to data.Copilot works on the entire semantic model based on user permissions and can read metadata and column values, which is why it may return data beyond what you specifically selected.
To properly control what users can access, you’ll need to rely on data governance practices, such as limiting access to the semantic model,especially Build permission, using RLS or object-level security, separating sensitive data into different models, or disabling Copilot at the tenant level if needed.
Refer these docs -
https://learn.microsoft.com/power-bi/create-reports/copilot-introduction
https://learn.microsoft.com/power-bi/create-reports/copilot-prepare-data-ai-verified-answers
https://learn.microsoft.com/fabric/fundamentals/copilot-power-bi-privacy-security
- v-sshirivoluCommunity Support
Hi pjuvalainen ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions.