190 likes | 432 Views
Automating Security in IBM Cognos 8 Transformer. Evan Ross Principal. IBM Services Partner. Expertise in the BI platform for more than 12 years Cognos BI Dashboarding Reporting Analysis Scorecarding Data Manager. Some of our Cognos Clients. Cognos security.
E N D
Automating Security in IBMCognos 8 Transformer Evan Ross Principal
IBM Services Partner • Expertise in the BI platform for more than 12 years • Cognos BI • Dashboarding • Reporting • Analysis • Scorecarding • Data Manager
Cognos security • Great Active Directory integration for Framework Manager • Functionality added in Transformer 8.3 for Custom Views
The problem: • Hospital ERP system • Complex security by department • Security table available in SQL • Framework Manager can easily connect to the SQL table • Hard to maintain in Transformer • Security Concerns • Timeliness
Transformer views • Exclude • Not in cube • Cloak • In totals, not visible • Suppress • Hide level • Summarize • Hide lower levels • Apex • Hide upper levels
What does the user see? • Two options: • Supress all categories at the lowest level and then unsuppress applicable categories • Apex on applicable categories
The solution • Cognos 8.3 and higher allows for OLE automation of Transformer Model • Read SQL database and create User Views for each class • Tools needed: • Transformer • Visual Studio – free Express version is fine • Does NOT need Cognos SDK!
The next problem – Active Directory names! • Security tables uses login name • RossE • Cognos expects full name • Ross, Evan • The answer – link directly to Active Directory
Connecting to Active Directory • SQL Server supports linking directly to AD
Once connected, it’s a simple query… Insert Into L_activedirectory Select Cn, Samaccountname From Openquery(adsi, 'Select Cn, Samaccountname From ''Ldap:// Dc1'' Where Objectclass = ''User'' And Objectcategory = ''Person'‘ Order By Givenname') End
VB.NET code – what does it do? For intX = 1 To dimension.DrillDowns.Item(1). Categories.Count Dim category As Category = dimension.DrillDowns.Item(1).Categories(intX) If category.Name = deptName Then view.SetViewStatus(category,xtrViewStatus.trViewStatusApexAncestor) End If Next intX
The end result • No manual maintenance of Transformer security • Security preserved in all Cognos tools – relational, dimensionally modeled relational (DRM), and cubes • No more headaches for BI team!
Questions? • Evan Ross • eross@dstrat.com • 416-987-5793