0
votes

I'm kind of new to PBI and I'm looking if it's the right tool for my case.

I would like to use Power BI Embedded in a web application for our customer (where they're logged in) which do not have any Power BI account/licence.

The database on which the reports are based are on-premise so we're would use Analysis Service Live Connection to access them.

Each customer should have his own report.

  • Is it possible to use RLS in that case?
  • Does that mean we've to create a role for each of them?
  • What username should be given in the EffectiveIdentity? Is it 'free text' that is used by PBI to get the username in the DAX?
1

1 Answers

1
votes

If each customer will have his own report, then why do you need RLS at all? Just make the report to show what the user is supposed to see. Or you want to have a single report (or set of reports), which is shared between the users and they should see only their data? I will assume it is the later one.

I will start with the last question - the effective identity is not a "free text". It must be a valid user name, having rights to access the data, as specified in the documentation:

The effective identity that is provided for the username property must be a Windows user with permissions on the Analysis Services server.

The you can define RLS in your Analysis Service model, by adding a "users security" table, where you specify which rows should be visible to each user. Define relationships between this users security table and other tables in the model, and then let RLS to filter the data in the security table. The relationships with the rest of the model will apply cascade filtering on the data, so only relevant rows will be visible to the user. See Implement row-level security in an Analysis Services tabular model for example.

So the answer of your second question is no, you don't need a separate role for each user, because the filtering is based on the username and for every user it filters the same thing the same way.