A Mid-Level Overview of the Analysis Services OLAP Security Model:
Context: As we continue to explore improved business intelligence data architecture, with our overall mantra of "...fewer, faster, more sophisticated cubes providing more simultaneous users with answers to more questions..." (...gasp!), we need to consider role-based security. It's all good news, and here is the story...
In general: Role-based security explicitly grants or denies Windows Users or AD groups access to AS Objects. AS Role members can be either AD Groups or Windows Users. AS Security granularity can be just as granular and just as multi-dimensional as the AS cube itself, such that a specific restriction does not prevent full drill-down access to other needed information slices. For a BI front-end integrated with SharePoint, SharePoint Security might simply grant/deny a Windows AD group the visible rendering of a dashboard page, tab within a dashboard page, or a specific report. This is true in San Diego, as elsewhere (shameless SEO plug).
Analysis Services' Server Role: AS has just one Server Role, called ‘Administrator’. Members of this role can see/do virtually everything with that AS server instance.
Analysis Services Database Roles: Created by aforementioned AS Server Role, ‘Administrator’, they can receive admin (eg. ‘Create’,‘Process’) or user permissions such as read cube, read dimension, read cell (most granular), ‘read/write’ (rarely needed) or read data source (needed if end-user needs drill-through-action from cube to a more granular DW RDBMS). Frequently, multiple AS Database User Roles are created to assigned fine-grained security to AD Groups / Users. Lastly, if multiple cubes are deployed into production within a single AS Database (the container of the cube and related metada/MDX), the AS Server Role (Admin) has option to set AS Database Roles at either DB or (if security differs among these cubes) at cube level.
Note on Role ‘Additivity’: For denies vs. grants on same level/granularity of a dimension hierarchy, ‘grant’ wins over ‘deny’. However, when conflicting grant vs. deny exist on different granularities, finer grained wins whether an explicit ‘deny’ or ‘grant’. So, if required, Windows users with varied membership in a collection of AD Groups (example: ‘All SVPs’, ‘All Directors’ ‘Sales Dept’, ‘Operations Dept’), which are then assigned as members to various AS DB Roles, can be used in conjunction with AS’s aforementioned ‘additive’ grant vs. deny capability on different levels of dimensional granularity. A mid-level explanation of this follows…
AS Security Levels:
Highest Level – Dimension Security: An AS User DB Role can be explicitly granted/denied access to one or more dimensions in their entirety. A user denied access to the entire ‘Staff’ dimension, for example, would only be able to see that dimensions default value, which is normally ‘All’. This means that he will see all detailed cube data, except that he could not slice (filter), drill-down (group by or sort) by staff (employees, teams, managers, directors, etc).
Mid-Level - Dimension Data Security: As AS User DB Role may be granted access to the Staff Dimension per se, but denied access to peer-level details outside of his/her team, seeing only aggregates either laterally (other teams) and higher up (management).
* (Perhaps obviously,) an AS User DB Role may have this level of security configured independently across multiple dimensions.
* This level of security does NOT deny any specific facts/measures, only the dimensional criteria by which they are sliced.
Examples: One AS User DB Role has been…
Granted Unrestricted Permissions: Therefore, San Diego users see…
Sales Territory: North America Europe Asia Total
Reseller Sales Revenue: $75,000 $15,000 $25,000 $115,000,000
Reseller Order Count: 350 50 100 500
__________________________________
Denied Dimension Permissions on ‘Sales Territory’ Dimension: Therefore, San Diego users see…
Sales Territory: North America Europe Asia Total
Reseller Sales Revenue: - - - $115,000,000
Reseller Order Count: - - - 500
__________________________________
Denied Dimension Data Permissions on ‘Europe’ and ‘Asia’: Therefore, San Diego users see…
Sales Territory: North America Europe Asia Total
Reseller Sales Revenue: $75,000 - - $115,000,000
Reseller Order Count: 350 - - 500
__________________________________
Fine Grained Level - Cell Security: An AS User DB Role can be granted (or denied) permission to view one cube measure (one fact table column), but not another. For example, in a ‘Student Retention’ cube, one AS User DB Role may be granted read permission on the ‘StudentInAttendance’ measure, but neither the ‘StudentBillable’ or ‘StudentAtRisk’ measures.
* If no ‘Dimension Data Security’ restrictions exist for this AS User DB Role, then the above scenario applies to all dimensions as they slice the measures.
Denied Cell Permissions on ‘Reseller Sales Revenue’ measure: Therefore, San Diego users see…
Sales Territory: North America Europe Asia Total
Reseller Sales Revenue: - - - -
Reseller Order Count: 350 50 100 500
__________________________________
Finest Grained level – Combined Cell Security and Dimension Data Security: Combining these two approaches, an AS User DB Role can be granted or denied access to any combination of measures, dimensions (dimension tables), dimension attributes (dim table columns), and dimension members (rows/records in any dim table columns).
Combined Cell Security and Dimension Data Security: Therefore, San Diego users see (extreme example)…
Sales Territory: North America Europe Asia Total
Reseller Sales Revenue: $75,000 - - $115,000,000
Reseller Order Count: - 50 - 500
__________________________________
As a departing thought... keep in mind that none of the above permission restrictions prevent an AS User DB Role from performing fine-grain-detailed drill-down on other needed dimensions (eg. Student, SOE, University Modality, Geography, Date, etc.) or other unrestricted measures (facts).
When other such dimensions are added as rows or columns (ie. cross-joined) in the above examples, the resulting values will provide all details, except wherein the above permissions were explicitly controlled. The takeaway here may be that BI teams can not only build, but also carefully secure fewer, more sophisticated cubes with highly granular security architecture, rather than re-building otherwise-identical cubes simply in order to provide adequate security. Slick!
Daniel Upton
Business Intelligence in San Diego
Details: In the above document, I show that a few simple MDX techniques in BIDS/SSAS and PPS DD can go a long way. I use...
(1) Simple MDX expressions: Create a number of ratios for key business metrics (eg. ‘profit margin %’) to be browsed alongside a base cube measure such as ‘profit $’.
(2) Simple MDX named (measure) sets: Create in BIDS/SSAS Calculations tab, and include newly-created MDX ratio expressions in set list ABOVE the non-ratio measures
(3) SSAS Time Series Utility Dimension (not so simple, so the code is provided in the document): In addition to popular Time-Utility Dimension expressions such as ‘YTD, Prev Yr, and Rolling X Month Avg’, I’ve added ‘Rolling X Month Avg + 2 Std Dev’ and the same for ‘… - 2 Std Dev’, so that users can perform self-service trend analysis on all cube measures. For a PPS Analytic Chart visualization that’s easy on the eye, of course, I recommend the line chart as default.
Have a look!
INTRODUCTION
Business intelligence and performance management are related disciplines and technologies that, in combination, empower us to extract maximum insight from integrated data, use that insight to inform better business decisions, take appropriate direct action based on those decisions and, in fact, do all of the above as a matter of our normal work routine.
EXISTING STATE OF BUSINESS INTELLIGENCE
Business Intelligence may be aptly defined as a state – enabled by an optimum data architecture accessible via specific software – wherein business decision makers routinely enjoy fast, direct, user-friendly, continuous and role-appropriate access to a single version of the truth about actual business results, and their relation to standardized metrics, as a foundation for good business decisions. Activities for business intelligence users generally include monitoring data, analyzing it in detail or obtaining on-demand reports. Frequently, business intelligence data is organized multidimensionally — the way we naturally think — according to relevant criteria (dimensions) like people, things, products, geography and time.
In that regard, business intelligence represents close to an ideal state of knowledge capture from data. However, business intelligence applications usually do not, within their own sphere of functionality, support the initiation of any actions that may be taken based on decisions made from new insights.
“Performance Management” (PM), which is evolving from a combination of business intelligence and corporate financial planning disciplines, is defined by Wayne Eckerson of The Data Warehouse Institute as… “a series of organizational processes and applications designed to optimize the execution of business strategy”. “Execution” is a key word here and, in performance management, execution typically involves forecasting, planning and budgeting.
INSIGHTFUL ACTION: THE IDEAL STATE
Architecture and applications that blend Business Intelligence and Performance Management features can add high value by allowing now-enlightened decision makers to routinely take appropriate action on those decisions using automated, standardized, and collaborative workflows for contributing to, reviewing or approving the specific execution of forecasting, planning and budgeting activities, thereby “closing the loop” and initiating intended changes based on insight supported by hard facts. Budgeting, in particular, is the activity in most organizations, where plans resolve into changes in resources, tasking and goals.
TWO CHALLENGES
In practice, we often find that not all of the data needed for the desired analyses ever finds its way into a business intelligence application. On the one hand, some data — which will provide the required real-time key performance indicators for performance management, may not arrive in the business intelligence application until its too late to be valuable. An example of this might be an airline's real-time data each day about late departures. Another reason for this is more generalized: Because of spreadsheets’ (a) continued popularity, (b) ease of use, (c) robust analytic capabilities, and (d) ease of sharing, some high value corporate data continues to remain in spreadsheets, with their traditional weaknesses in terms of version control, accuracy and security. In the past, this reality has amounted to a major compromise to BI’s promise of “a single version of the truth.”
On the performance management side, although some tasks, such as forecasting and "what if" analyses, are best performed using the available analytic muscle of a business intelligence application, other processes, especially more procedural processes like task assignments, progress notifications, draft submittals, reviews, edits, re-work and approvals, while perhaps based on that same business intelligence data, are inherently very different activities and should normally be performed using the most obvious tools. As is the case with business intelligence, the popular medium for these processes has been the informal, arcane combination of e-mails and, yes, more spreadsheets, with the resulting convenience, as well as the potential for unpredictability and error that this combination has traditionally offered.
ENTER PERFORMANCE DASHBOARDS
Performance dashboards are like other dashboards in that they provide busy people with relevent information at a glance. What makes performance dashboards unique is that they deliver business intelligence and/or performance management information and support the related workflows. A good performance dashboard will…
* Provide consumers with an appropriate combination of "at a glance" key performance indicators, scorecards, pivot tables and charts, as well as some in-depth, drill-down reports and advanced data visualizations,.
* Be virtually effortless to deploy to user workstations.
* Flawlessly orchestrate the integration of a wide variety of dissimilar data sources, including OLAP cubes, data warehouse tables, line-of-business databases (for real-time performance data), flat files, web-server lists, survey data, spreadsheets and other format, in order to serve as a final, crucial data integration point prior to user views. All needed data sources should be able to be seamlessly integrated as data sources, so that the end user experiences consistent multi-dimensionality and, of course, accuracy. As an example of flawless orchestration, various examples of time series information (eg. year-to-date, year-over-year, etc) that originate in dissimilar data sources must integrate transparently.
* Coexist with and, in fact, integrate closely with and orchestrate e-mails as the preferred vehicle for notifications related to performance management assignments, progress notifications, reviews and approvals.
* Support the actual performance management analysis work by managing the storage, security, role-based access, and version control over spreadsheet entries for forecasts, what-if analyses and, most importantly, the budgets themselves.
* Orchestrate these spreadsheets’ consumption of data from — and secured write-back of new data to — the business intelligence application / data warehouse, such that what-if analyses, forecasts and proposed budgets comfortably exist alongside actual results data in the data warehouse and/or OLAP without danger of losing actual data to inappropriate overwrites.
Performance dashboards that can do all of the above, especially the controlled orchestration of disparate sources and two-way data flows between the data warehouse and spreadsheets, are truly next-generation solutions that will assist in freeing up information workers to overcome organizational paralysis and close the insight-decision-action loop on a routine basis.
NEXT IN SERIES:
* Microsoft Office PerformancePoint Server 2007
* Detailed Feature Comparisons in Leading Performance Dashboards
During a presentation I gave on SQL Analysis Services 2005 in January 2007 to the San Diego SQL Users Group ( www.sdsqlug.org ), one attendee asked me for my opinion on how to go about acquiring BI skills. I'm no guru, but as one who is a ways along the skills continuum, here is my take on just one aspect of this question, which is...
First Off, Exactly What Are The Core BI Technical Skills?
(1) Relational Database and SQL Language Fundamentals:
Although BI is certainly a departure from traditional / transactional RDBMS principles (eg. third normal form), it is still significantly based on, or at least built from, relational DB management systems' concepts. Additionally, most BI applications are built around large data sets, for which solid SQL language skills are essential. Add these two realities together and most will agree that BI is a place for interested database novices to progress towards, but not to start with. On the other hand, business people may continue growing their BI Analysis skills without necessarily spending much time in this topical area.
(2) Dimensional Modeling:
Designing the data warehouse (DW) or data mart (DM) is, I think, the theoretical foundation of BI. Once the business process of interest has been defined, we define the facts (aka measures), which are the (usually numeric) values to be analyzed according to dimensional criteria (to be defined shortly). Examples of facts in a Sales data mart may include quantity of units sold, unit sales price, and unit cost. We then define dimensions and their attributes. To extend the example, a Sales data mart may include a product dimension with attributes of Product ID, Product Name, as well as hierarchic values such as Product Sub-Category and Product Category. A third dimension may be the Date dimension, which may include analytically intuitive attributes such as Date, Day of Week, Holiday, Month, Quarter and Year. Importantly, although an overriding goal of dimensional modeling is to establish a highly-intuitive, refreshingly simple design, the potential potholes and bends in the road are many, and thus Dimensional Modeling requires study. Fortunately, it's fun. Dimensional modeling calls for, and rewards, experience with not only database design but the business subject area itself.
(3) Extraction, Transformation and Loading (ETL):
Once the DW's dimensional design is complete, the hard work of gathering data from multiple sources, cleansing it and transforming it's data types, granularities and/or aggregations, loading it into the DW, and the scheduling much of that to iterate, begins. Many consider ETL to be the 800 Pound gorilla in the DW project planning room. It's specialized work performed by experts, it's difficulty may be under-appreciated by key business-side stakeholders who wonder "How hard could it be...?", and the likelihood of it's on-time, on-budget successful delivery is obviously vulnerable to even subtle changes in project requirements. In my opinion, ETL may be one role in the team cannot afford for the individual to just learn it as she goes.
Although they are often considered as an advanced database skill set, people with the desire and the dedication to master this specialty, will enjoy a strong demand for their work.
(4) Analytics / OLAP Cube Development:
From my viewpoint, this is the most fun part. The only part more fun is showing the analyst / BI user how to go about "finding the money" and then being around for the high fives when she finds really big bucks.
In building a high-functioning OLAP cube on top of the DW as it's data source, we are creating a truly multi-dimensional on-screen data browsing structure with fast (ideally "speed of thought" query performance, rich semantics, calculated fields, key performance indicators (KPI's), pre-calculated aggregates, a realistic variety of hierarchic default drill-paths and a strong foundation for the inevitable collection of hard-copy reports. MS Excel is, of course, a popular OLAP front-end browser. With a sufficient budget, the OLAP application will also benefit greatly from a rich-featured, browser-based, zero-client-footprint, multi-user front-end OLAP web server (that was a mouthful), such as is provided by Applix, Business Objects, Cognos, Hyperion, MicroStrategy, Panorama, ProClarity, Strategy Companion, SAS and others. The user-browsing capabilities of some of these platforms is extensive, and so the work of configuration, customization, user-training and administration with these platforms is no trivial matter.
For analytical business-specialist types like myself, the analytics / OLAP development phase is uniquely exciting insofar as it delves deep into the actual analyses that will be performed and enables them for users.
(5) Data Mining:
I will only deal with this advanced area briefly. Data mining starts, in a sense, where OLAP stops. Whereas OLAP enables analyses according to known factors (dimensions) in order to determine "what did happen and why?", data mining allows the system to detect patterns from "test data", and then apply those patterns to new data sets and thereby furnish potentially insightful answers to questions no user thought to ask. In that context, data mining is often used for predictive analyses of "...in light of all of our data... what will happen?"
Data Mining practitioners, whose expertise is usually built atop a foundation of statistical analysis skills, may often be relatively uninvolved in database engineering per se, but rather are advanced power-user specialists who can generate unprecedented insight from a database. As such, data mining is among the hottest of hot database skills.
(6) Report Development:
Although the aforementioned OLAP on-screen analytics may tend to reduce the sheer number of semi-redundant reports that IT is asked to generate, is does not signal the end of the need for reports per se. Reports retain the role as the hard evidence of information queried and, hopefully, valuable knowledge gained. In my opinion, a reasonably small collection of carefully conceived, uniquely insightful OLAP-based reports, many of which should include an extensive set of user input parameters, are crucial BI assets. Ideally, OLAP-browsing analysts should be able to drill directly and seamlessly from on-screen browsing into a variety of these on-screen reports with their input parameters automatically pre-selected according to the users currently OLAP browsing slice-and-dice positioning. As the analyst successively "finds the money", she should be able not only to bookmark those OLAP browsing locations, but also document each of them with appropriately filtered hard-copy reports. Lastly, these report hard-copies must include automatic documentation (ie. in the report footer) of all input parameters settings, so that the report can be duplicated later.
Personally, I view report development skills as an excellent compliment to RDBMS fundamentals and SQL language skills for novices interested in BI.
(7) Project Lifecycle Process Methodologies:
These competencies, which span skills that are technical, analytical, organizational and interpersonal, may be the single most crucial factor in BI success in light of the sheer complexity of BI development. For an article on the mainstream "Data Warehouse Lifecycle, click on... http://www.businessintelligence.com/ex/asp/code.147/xe/article.htm
For an intriguing book on the "Business Intelligence Lifecycle", click on...
http://www.amazon.com/gp/product/0201784203/ref=wl_it_dp/104-5823156-6544767?ie=UTF8&coliid=I3JFAKDAO7BDG0&colid=266K0ULFTUTZY. Of, if that link breaks, visit Amazon.com and search for the book entitled "Business Intelligence Roadmap" (ISBN-10 0201784203), by Moss and Atre. What's intriguing? They tout Extreme Programming (XP) as an effective BI development process. Although I have not been exposed to XP usage in BI, I must concede that anything that can reliably accelerate progress amid a high degree of complexity needs careful consideration.
In my view, expertise with software lifecycle methods simply comes with experience. Having said that, the topic makes for enlightening, and occasionally enjoyable, reading.
Let's close this blog entry with some open questions...
Question #1: For BI newcomers from a variety of backgrounds, which of the above skills are reasonable to seek and in perhaps what sequence from a career-development standpoint?
Question #2: Under what circumstances can any, or many, of the above roles be wisely placed on a single individual, and what risks do these choices create?
Question #3: To what extent is Agile or Extreme Programming (XP) an appropriate methodology for BI?
What are your thoughts?
...