While you create a new dimension in SSAS, it tries to guess the name you like to give to your dimension. For example: If the table name is DimCustomer then SSAS will think you like to call the dimension that is based on that table: Dim Customer. Well, I don't like spaces on objects. It makes my life harder while I need to refer to this object on a code (call it [Dim Customer] instead of DimCustomer). For that reason I usually rename the dimension to a name without spaces. SSAS accept the rename request and up until now I thought everything is ok. But, as the title implies, SSAS never forget.
The change of the dimension name made the dimension name different from the dimension ID.
You may use the cube forever without any difficulty after that change. But as it happened to me, if you try to give permission on part of the data of that dimension to a user, SSAS start giving you a confusing error message like:
The 'Rosh Zevet' attribute in the 'Dmn Menael Lakoah' dimension has a generated dimension security expression that is not valid.DimensionPermission (1, 2) The dimension '[DmnMenaelLakoah]' was not found in the cube when the string, [DmnMenaelLakoah].[Rosh Zevet].[yuval kedmi], was parsed
You may ask yourself, how can the permission I choose using the BIDS interface (just choose one member of the dimension) could 'generate a dimension security expression that is not valid' ?
Later it said that it can't find a dimension that you clearly see it is part of the cube.
I have noticed that the dimension name as I know it (without spaces) shown on the dimension list.
Inside the brackets I could see the original dimension name (which I already forgot because I rename it long time ago).
I tried to rename the dimension again and give it the original name SSAS gave it, [Dmn Menael Lakoah] . Everything works well. Half a day went to the trash but at the end the user got his permission.
I have opened a Microsoft connect feedback. If, like me you think than should be improved, please vote for it here:
* Kennedy, John F. : "Forgive your enemies, but never forget their names."