Restrict/Prevent ad-hoc conections to SSAS Models

Vivek Devalkar 122 Reputation points
2021-02-08T15:59:10.907+00:00

We have several SSAS data models and folks connect to those typically via Power BI Report Server Reports or SSRS reports that we have developed. All users are expected to use the dashboards/reports only.

However, there are some users who are aware of the SSAS server name and connect/pull data from it via Excel, SSMS or other means. This has caused serious issues sometimes as those users end up pulling information incorrectly.

We want to restrict folks from being able to connect to the data models directly except of course via our reports/dashboards. We would still like to have the ability to connect to these ourselves i.e. our core team (This is ideal but can be lived without if required)

Is there a way we can achieve that?

SQL Server Analysis Services
SQL Server Analysis Services
A Microsoft online analytical data engine used in decision support and business analytics, providing the analytical data for business reports and client applications such as Power BI, Excel, Reporting Services reports, and other data visualization tools.
1,344 questions
0 comments No comments
{count} votes

4 answers

Sort by: Most helpful
  1. Darren Gosbell 1,471 Reputation points
    2021-02-11T00:35:49.34+00:00

    There is no built-in mechanism in SSAS to restrict access based on the type of clients tool.

    Off the top of my head I can think of a couple of potential solutions.

    1. You could talk to your networking team and get them to restrict access to SSAS. This would probably also restrict access to your team since usually these sorts of rules are setup based on fixed IP addresses and subnets and those sorts of things are usually only assigned to servers. Although for this to work you would need to have another SSAS server, for a dev environment where your team can connect to create/edit reports.
    2. If you are not using Row Level Security or Object Level Security in any of your models then you could possibly remove all end users (apart from your core team) from all security roles in your models. Then create one or more "service" accounts and put them in the roles and set the credentials for those in your Report Server data sources. This has the downside that anyone with access to the report can run it so you need to be more careful about the security in the Report Server layer. But this would block ad-hoc connections for most users while being able to maintain it for your core team.
    2 people found this answer helpful.

  2. Lukas Yu -MSFT 5,826 Reputation points
    2021-02-09T06:53:59.89+00:00

    Hi,

    We could not control the client tool and forbidden certain softwares from connecting.

    My ideal is to change the tabular server password, if the normal user only need to connect to data through SSRS/PBIRS, this is no need to share them the SSAS server permission and password.

    They only need to have SSRS/PBIRS logon account and password, with which they could log on to SSRS PBIRS web portal and browse the report.

    Regards,
    Lukas


  3. Darren Gosbell 1,471 Reputation points
    2021-02-11T05:18:25.39+00:00

    This method did seem to work but only for SSRS reports and Excel. PBIRS reports did not seem to pass the CustomValue to the model's row level security logic though.

    Unfortunately you cannot add any additional parameters to the connection string for PBIX based reports. The SSAS connector only accepts the server name and database name, any other options are ignored. So sneaking something into the connection string is not an option for those.


  4. Vivek Devalkar 122 Reputation points
    2021-02-11T19:42:29.463+00:00

    I actually ended up trying it again and it worked like a charm with PBIRS reports too.

    Basically 2 steps:-

    1. Add && CUSTOMDATA="SomeCodeWord" to any existing row-level Security logic you may already have in the model
    2. Add CUSTOMDATA=SomeCodeWord to the connection string. For PBIRS and SSRS you will basically need to update the connection after publishing/uploading the report in PBI Report Server.

    The customdata value can be added in Excel, DAX Studio, PBIRS, SSRS reports etc as needed. If it's not passed then user does not see any data. If it's passed, user sees the data he/she has access to as per the RLS security.

    Essentially, unless someone knows the "CodeWord" they can't access the data from any other application.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.