Mulling over something I've been reading up on.
According to Chris Webb,
A linked measure group can only be
used with dimensions from the same
database as the source measure group.
So I took this to mean as long as two cubes share a database, a linked measure group can be used with a dimension. So I created a new cube and added a local measure group, a local dimension and a linked measure group. However, I can't create a relationship between the linked measure group and the local dimension even though they are within the same database. I get the message below:
Regular relationships in the current
database between non-linked (local)
dimensions and linked measure groups
cannot be edited. These relationship
can only be created through the
wizard. This dialog can be used to
delete these relationships.
I see that I can go to the original cube and add the dimension there, but does the message below mean I have an alternative?
I just know it's going to be something simple and trivial! Thanks for reading.
If you are trying to do what I think you're doing then add the other cube first (the one you tried to link to the original) and then go to the linked dimensions tab and do the linking and it should work.
Be sure to check your aggregation after you do the linking because often-times that can get goofy if your two cubes use that dimension in different ways even though they are essentially both accessing the same dimension.
Related
I have the following situation. User1 is authorized to see
UK (London and Northampton) .
DimBrach is a parent-child hierarchy. When User1 wants to access the report I want him to see only the leafs (London and Northampton) and the first parent and not the entire hierarchy.
How can I reach this in a Pivot Table or in SSAS (MDX) ?
You can do this very simply like this, in the SSAS project in Visual Studio:
Create a Role for the user
In the Role designer's Dimension Data tab, deselect/select dimension members as needed
You can check this is working by processing the cube, browsing it through VS and using the "Change User" button. (No need to enter the user's password).
ADDITION:
To make role security less hard-coded you can use MDX statements in the Advanced tab of the Role Dimension Data tab, and populate a fact table controlling access. You're already doing this, judging by your past question.
As far as I know Excel pivot-tables are far less flexible than raw MDX in showing particular levels of a hierarchy. The end user can view their pivot-table, right-click on a field and select the Show/Hide fields option, so they can control what they see. But as far as I know there's no way for the developer to prevent them from seeing a particular level at all.
I am quite new to SSAS, so please forgive me if there is an obvious answer to my question - I have done a lot of research today and cannot find the answer myself.
I am trying to apply Dimension Data security (in a SSAS DB role that I have created) to my SSAS 2012 cube. Essentially, what I am trying to do is that users assigned to the role that I have created, should not be able to see any data for a specific dimension member.
So, when I edit the cube in SSDT (SQL Server Data Tools or Visual Studio with BI add-on), I go to Roles --> open the role --> go to Dimension Data tab --> select the dimension in the drop-down --> Un-tick the dimension member(s) that the users in the role should not be allowed to see).
Once this is set up, I test the role by deploying the cube, then in SSDT I open the cube --> go to the 'Browser' tab --> click on 'Change User' --> select the role that I have created.
The result of my test is this:
If I select the dimension which I have restricted, and any of the measures, the data is displayed correctly, i.e. only the dimension members which I allowed are displayed with the values for the measure(s) displayed correctly for each dimension member.
However, if I do not select the restricted dimension (e.g. select only one of the measures on its own), the total for the measure is incorrect, i.e. it does not appear to be excluding the dimension member(s) hidden for the role.
What am I missing here?
I have seen some posts / blogs online talking about 'Dynamic SSAS security' which seems to involve mapping individual Windows logons to the fact rows that they are allowed to see (which involves creating additional, hidden tables in the data source), but I can't get my head around why I would need to do that if the SSAS role should do that as well? I do not need to define security at the user level - users are grouped into active directory groups and so I want to map a role to the relevant AD group and that should work too, shouldn't it?
You have to check 'enable visual totals' checkbox in the advanced tab. Take a look at the whole tutorial about this (and other SSAS authentication matters) on our website:
http://easyroles.com/2014/02/visual-totals-in-ssas-security/
A while back I created a cube in BIDS 2008 (no R2) with a single facts table and around 28 dimensions. This got deployed to SQL 2008 and auto-updates itself with data from the ERP system (using a data-warehouse and SSIS and all that).
The customer liked it and wanted me to make another one.
The next one, however, has around a 100 dimension views in SQL.
I created the Datasource view (looks enormous) but is there some way to automate creating the dimensions based on the DataSource View tables?
My sanity is at stake here :-).
EDIT:
I did it manually for the moment, but I'd still like a method for possible future cubes.
Within BIDS, the only automation would be this: If you create a cube using the wizard, all the dimension objects that you configure will be created for you, as long as the dimension does not yet exist. However, these automatically created dimensions just have the key attribute. You will have to add all other attributes for each dimension manually.
I've got a nice SSAS tabular model with users processing away. Certain users need access to certain information, such as confidential info (e.g., SS numbers), that should not be visible to everyone. How should I handle this?
This indicates that there is no way to use roles to remove columns, only rows. Is my only option to make a copy of the model and maintain both? This can't be such an edge case...
I guess I can jury-rig something with a scm fork and code-generation, but I'd rather not go down that road.
Alternatively, is there any way to hide the columns (per user/role), so that at least they don't show up in client tools?
One method that requires very little additional development is to use the method described in the following blog post. http://blog.westmonroepartners.com/a-workaround-for-column-security-in-the-sql-server-analysis-services-bism-tabular-model/
The blog contains a link to an SSIS package which will replicate an existing cube, with the exception of the sensitive data columns. The users who cannot view the sensitive data columns can be given access to the second cube that does not contain sensitive data columns.
One way to achieve this is to create Perspectives. You can create different perspectives for different group of users. And end users can connect to their specific model.
I have performed ETL operation and i created a data warehouse and i loaded the data to it and so far its fine.. my ETL seems to work allright since my data warehouse contains all the data i needed. And then i created an SSAS project from my data warehouse following the AdventureWorks DW example. I deployed the cube and processed it. Then i tried to browse the cube. But here is a problem, it seems as the members do exist but the measures are empty. because my dimensions contain the data but when i throw the measures to it .. it is just gonna be empty cells. What causes this?
In the cube designer, check the "Dimension Usage" tab. Make sure that the intersection between a dimension and a measure group has something there (If there's meant to be a relation).
What happens if you drag & drop the measure to the browser, without any dimensions?
Also what version of SSAS are you on, is it 2005? That had IgnoreUnrelatedDimensions set differently to 2008 I think..
Make sure you've linked your dimensions with measure groups (i.e. that you fact table references you dimension tables).
Also make sure you have foreign keys defined in your data warehouse (as soon as wizards in Visual Studio use them when proposing cube structure).
In order to deploy to a different dwh server
Right Click on the CubeNAME
Go to properties
In Configuration properties > Go to Deployment
In Processing option - change Default to - Do not Process.
if in case the DB is very large and keep huge data, it will get deployed and you can process it later.
For Target - Set name of Server
Click on OK, Deploy and later process