Common confusion - "Reporting Services Data Source Account" != account Reporting Services is running as

A few of us were working just this morning on trying to prevent this confusion in the next version, so it seems like a decent time for a blog post. 

When the TFS 2008 (and 2005 for that matter) setup is asking for "Reporting Services Data Source Account", it's not asking for the account the Reporting Services itself is running as.  TFS doesn't need to know (and doesn't care) what account RS itself is running as.  Most of the time if you accept the defaults it'll be Network Service, but TFS really doesn't care.

Going top-down on the explanation:

  • TFS includes lots of reports which (by default) get created as part of each team project you create. 
    • These reports are full of goodness like work item info, code churn data, etc.
  • For these reports to actually get the data that populate into these wonderful pictures and charts, they associate themselves with one more more Data Sources.
    • It's a relatively simple level of indirection.  Reports get data from Data Sources, and then the Data Sources in term define how to get the actual data.
    • You can have Data Sources that pull from all kinds of places, including things like spreadsheets, xml files, databases, etc.
  • When TFS installs, we create 2 of these Data Sources.
    • TfsReportsDS points at our "relational warehouse"
      • this relational database (called TfsWarehouse) where we gather lots of data from the other "operational" databases (like TfsVersionControl, TfsWorkItemTracking, etc)
    • TfsOlapReportsDS points at our "analysis warehouse"
      • This database is also called TfsWarehouse (which can cause some confusion in itself) and is located inside an instance of SQL Analysis Services.  Inside it is a cube called TeamSystem that keeps the same kinds of information as the relational warehouse.
      • This cube actually gets its data solely from the relational warehouse, by default processing new data once an hour.
  • These data sources, which connect to a relational database and analysis database respectively, have credentials associated with them.
    • This way, we can control the credentials that the data sources "run as" and can then control the account we have to grant read permission to the relational and analysis warehouses.

The field "Reporting Services Data Source Account" is asking for the account/password you want to use for the credentials inside these 2 data sources we're going to create in Reporting Services.

To reiterate, it's 100% unrelated to whatever account Reporting Services itself is running as.  We (TFS) don't know and don't care what RS is running as :)