Deploying to a Brand New Reporting Services 2008 Install

October 30, 2009

Having problems deploying to a brand new Reporting Services 2008 install?

There are two kinds of permissions in Reporting Services – Server Level and Item Level.  To get to the Server Level permissions, in Report Manager, go to home, and then click on Site Settings in the upper right hand corner, then click the Security menu item on the left.  If you click, New Role Assignment, Notice there are only two roles here.  You can make yourself an administrator here – although local Administrators is automatically added.  This may be enough.  FYI – it may be a good idea to take the local administrators out anyways so that hardware administrators don’t get administrative rights to the Reporting Services Server inadvertently.

But before you can deploy a Reporting Services project to the server, you have to do one more thing.  You need to have item level permissions as well.  To add yourself, go to Home and then click Properties – the blue tab next to Contents.  If you click New Role Assignment, you’ll see item level roles.  You’ll need to be at least Publisher, but you’ll probably just want to be Content Editor.  Publisher can’t modify folder structure, Content Editor can.

After you add yourself, you should be good to go.

Update: Here is a link to more info on adding Item Level Permissions

Microsoft’s Gartner Position

October 22, 2009

Here is an aggregation of all the market research about Microsoft Products.  After having looked at them, Microsoft is in the Leader’s Quadrant in nearly all reports.  Impressive.

Unknown Member in Analysis Services

October 22, 2009

Analysis Services has a built in member for each dimension called (by default) “Unknown.”  This is to simplify the process of dealing with facts that have the property of Unknown for a particular dimension.  If a dimension member comes to the fact table after failing a lookup in the SSIS package and contains a null for the surrogate key, Analysis Services assigns it to this special Unknown Member and moves forward.

There are three steps to this situation.  First, the dimension itself has a property called UnknownMember that describes the usage of this unknown member.  It can be set to Visible, Hidden, or None.  Next, the dimension member set with the usage of Key has a property called NullProcessing that is set to UnknownMember.  This tells the dimension what to do in case of coming across a null surrogate key in the fact table.  Third, in the Dimension Usage screen of the cube, for each dimension in use, there is a setting under Advanced that once again describes NullProcessing.  This also can be set to describe behavior when processing a null dimension surrogate key.  Here is a link to a description of all the options.  This is a reference to Analysis Services Scripting, but it was the only place I could find these options described.

I think that this unknown member is a very convenient inclusion by the Analysis Services team, but I think I’ll pass on using it.  There is some syntactic sugar in MDX that allows the usage of a member called UNKNOWNMEMBER that seems nice, but what this scenario does not allow is an unknown member in the relational store.  If you don’t ever plan on querying the relational store, then the only place you will need an unknown member will be Analysis Services.  You can then pass unknown members to the fact table as null and allow AS to process accordingly.

I like to leave the relational store in as query-able state as possible.  Report writers might later have a reason to use it and having null in the fact table for surrogate keys will cause problems.  Report writers will have to use LEFT JOIN and then derive an unknown member at query time.

I think in this situation, creating an unknown member in the dimension with a surrogate key of 1, 0, or -1 (a special number of your choosing) is a good solution.

You’ll have to go and turn off the unknown member in the dimension, change NullProcessing in the key attribute for the dimension and change NullProcessing in the dimension usage of the cube to enable it.  But I think you’ll find that this is a good compromise when the relational store needs to be as query-able as possible.

PerformancePoint Monitoring Authentication

October 16, 2009

While deploying Monitoring Server, I was having trouble viewing dashboards from SharePoint, but preview was working fine.  I referenced Nick and Adrian’s book and it suggested using the same identity for the SharePoint application pool for the credentials for the Monitoring Server application pool.  I’m working in an environment where the SharePoint service accounts are already deployed and Monitoring Server is coming in later.  The account names already in use for the SharePoint application pool wouldn’t make sense.

On page 241 on Nick and Adrian’s book, there is an awesome diagram of data/security flow for rendering a dashboard.  (Buy the book – it’s great!)

Just don’t forget that for a preview of the dashboard, it will use the application pool identity of the Monitoring Server, but when you render on SharePoint, it will use the credentials of the application pool for SharePoint.  If they are two different accounts, you’ll need to add them both with read permission to your data sources.

If you care to look and you are using SQL Server or Analysis Server as your data source, fire up Profiler and watch.  You’ll see two different accounts.

PerformancePoint 2007 with SQL 2008

October 14, 2009

I have been using the Monitoring Server Depolyment Guide for PerformancePoint 2007 (excerpted from Nick Barclay and Adrian Downes’ Book) document as a guide for installing and deploying PPS Monitoring.  There is a lot of documentation around how to get PPS 2007 to work with SQL 2008 among them being CU9 for SQL 2005.

PPS uses SQL 2005 clients for database and Analysis Services access – PPS was released well before SQL 2008.  When it comes time to hook up to Analysis Services 2008 and SQL 2008, it seems odd to install a SQL update to the PPS server – even if SQL is on another box.  This is to update the client tools used by PPS to access the data back end.

In the Deploying Monitoring Server documentation, it says that CU9 for SQL 2005 is required.  Well – this is not completely the truth.  Specifiaclly, you need a minimum version for accessing SQL 2008.  For SNAC, it is 2005.90.3282.0 with a file date of 05-Aug-2008.  The CU9 website doesn’t specifically point out the version numbers of the other required clients, ADOMD and ASOLEDB9.

In any case, applying SQL 2005 CU9 is unecessary if you use SQL Server 2005 Feature Pack from December 2008.  This collection of various and sundry tools has versions newer than are included in CU9 and are sufficient for running PPS.  The version for SNAC included in Feature Pack from December is 2005.90.4035.0 from 25-Nov-2008.