step-by-step sap bi security

37
Blogs Step-by-Step SAP BI Security Kamaljeet Business Card Company: Forest Laboratories Inc Posted on Feb. 26, 2009 05:32 PM in Business Intelligence (BI) , Beginner , Identity Management SAP BI security is an integral part of any BI implementation. Integrating all the data coming from various source systems and providing the data access based on the user’s role is one of the major concerns of all the BI Projects. Security of SAP R/3-ECC systems are based on the activities while SAP BI security is focused on what data user can access. Security in BI is categorized by major 2 categories: Administrative Users – The way we maintain security for administrative users is same as ECC security but we have additional authorization objects in system which are defined only for BI objects. Reporting Users– We have separate tools(Analysis Authorization) to maintain security for reporting users. What is Authorization Object? It allows to check whether a user is allowed to perform a certain action. Actions are defined on the fields, and each field in authorization object should pass the check. We can check all the Standard BI Authorization Objects using tcode SU21 under the Business Warehouse folder: With the SAP BI 7.0 we have new tool to maintain the reporting level security. We can access this new tool using tcode RSECADMIN which replaces the old RSSM tool of BW 3.x. ## Below are the Step-by-Step instructions to create/maintain authorization objects for SAP BI Reporting: Subscri be Print Permali nk

Upload: gilmar-rodrigues

Post on 30-Nov-2015

94 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Step-By-Step SAP BI Security

Blogs

Step-by-Step SAP BI SecurityKamaljeetBusiness CardCompany: Forest Laboratories IncPosted on Feb. 26, 2009 05:32 PM in Business Intelligence (BI), Beginner, Identity Management

SAP BI security is an integral part of any BI implementation. Integrating all the data coming from various source systems and providing the data access based on the user’s role is one of the major concerns of all the BI Projects.

Security of SAP R/3-ECC systems are based on the activities while SAP BI security is focused on what data user can access. Security in BI is categorized by major 2 categories:

Administrative Users – The way we maintain security for administrative users is same as ECC security but we have additional authorization objects in system which are defined only for BI objects.

Reporting Users– We have separate tools(Analysis Authorization) to maintain security for reporting users.

What is Authorization Object?

It allows to check whether a user is allowed to perform a certain action. Actions are defined on the fields, and each field in authorization object should pass the check. We can check all the Standard BI Authorization Objects using tcode SU21 under the Business Warehouse folder:

 

With the SAP BI 7.0 we have new tool to maintain the reporting level security. We can access this new tool using tcode RSECADMIN which replaces the old RSSM tool of BW 3.x.

 

## Below are the Step-by-Step instructions to create/maintain authorization objects for SAP BI Reporting:

I am covering the scenario where each employee (Sales Team) is assigned with one territory number, and the data should be accessible to employee based on their territory only. For this scenario to work we have to set security restriction for the corresponding territory InfoObject (ZDWSLTER).

 

# The first step before we create any Authorization Object is to set all the InfoObjects as authorization relevant for which we want to restrict data access.

Subscribe

Print

Permalink

Page 2: Step-By-Step SAP BI Security

 

Authorization Objects on InfoObject’s of type Characteristic:

# For accessing the new Analysis Authorization tools we use tcode RSECADMIN -> Authorizations Tab -> Maintenance Button

Page 3: Step-By-Step SAP BI Security

 

# We can also use tcode RSECAUTH directly to come to maintenance screen:

 

# We have to give the technical name of the Authorization Object (ZDWKJTEST) then hit the create button:

Page 4: Step-By-Step SAP BI Security

 

# The very first step of creating any Authorization Object is to add the special characteristics as field for restirction:

 

# The below 3 characteristics are mandatory for defining any Authorization Object. If we don’t have this we will get no access to any InforProvider. By default this gives us access to all the InfoProvider(Full Access), but we can also set the value of InfoProvider for which we want the

Page 5: Step-By-Step SAP BI Security

Authorization Object to work.

 

# Now I am adding the infoobject(ZDWSLTER) for which we want to add restriction:

Page 6: Step-By-Step SAP BI Security

 

# We can double click on the newly added infobject, and can define the value which we want to allow for this InfoObject. We can also set the dynamic value using Customer Exit Code which we will cover later in this blog.

Page 7: Step-By-Step SAP BI Security

 

# Saving the changes:

Page 8: Step-By-Step SAP BI Security

 

 

 

Page 9: Step-By-Step SAP BI Security

 Assigning Authorization Objects to Users:

# Go back to previous screen (RSECADMIN) by hitting the back button, and click on assignment button under user tab:

 

# Now we can assign the created Authorization Object to any user using this tool.

 

# Adding the created Authorization Object (ZDWKJTEST) to the user ZNBITSRTS. I will be using the same user through out this blog for running any query so that it can use the restrictions which are applying using the Authorization Object.

Page 10: Step-By-Step SAP BI Security

 

# We can also assign the authorization to users through role/profile using the standard Authorization Object S_RS_AUTH:

Page 11: Step-By-Step SAP BI Security

 

 # We can check the Authorization Objects assigned using roles/profile for any user using tcode RSU01 or we can also use the path tcode RSECADMIN->user tab->assignment->user->role-based

 

# User with Authorization Object 0BI_ALL is having full access to data, and can overwrite any other Authorization Objects assignment to it.

Page 12: Step-By-Step SAP BI Security

 

# Query on InfoProvider with Authorization Objects: Below is the test query in which I added the InfoObject for which we created the test Authorization Object (ZDWKJTEST).

Page 13: Step-By-Step SAP BI Security

 

# I am running the query with the same user name (ZNBITSRTS) whom we assigned the Authorization Object (ZDWKJTEST).:

Page 14: Step-By-Step SAP BI Security

 

# The query output displays the authorization error, and we can check the error log using tcode RSECPROT:

Page 15: Step-By-Step SAP BI Security

 

# The below log explains we are missing with some of the characteristics for the created object. Logically we can think that we are only using one characteristic in our query and we did add it in Authorization Object, but why still we are getting Authorization Error? The reason is we always have to add all the authorization relevant InfoObject’s of the InfoProvider on which we created query.

 

# Now I added all the missing InfoObject’s with full access for the Authorization Object (ZDWKJTEST):

Page 16: Step-By-Step SAP BI Security

 

# I have restricted the query with input ready variable on InfoObject territory (ZDWSLTER):

Page 17: Step-By-Step SAP BI Security

 

# Running the query with the same territory what I assigned for territory field of Authorization Object:

 

# The query returns output without any authorization error:

Page 18: Step-By-Step SAP BI Security

 

# We can check the log in RSECPROT for the last run of query:

 

# Running the same query with some different territory number:

Page 19: Step-By-Step SAP BI Security

 

# We got the authorization error because of the value which we assigned for the object is not same as what we passed:

Page 20: Step-By-Step SAP BI Security

 

# Authorization Variable on Query:

Using the Authorization Variable we can populate the value of InfoObject at run-time directly from the Authorization Object field’s value.

 

# If we have authorization variable defined for the query and when we run the query it will not prompt us for the variable selection screen & will run the query directly for the value we defined for

Page 21: Step-By-Step SAP BI Security

the field of the Authorization Object.

 

# Rather than assigning the fixed values in the authorization object, we can also define the technical name of the customer exit variable in the field’s value starting with ‘$’ symbol which will read the value of Authorization at query run-time based on the return value of customer exit code:

 

# Below is the sample code which reads the territory based on the portal login-id from the reference table which we have in our BI system:

Page 22: Step-By-Step SAP BI Security

 

Use of ‘:’ Symbol in Authorization Objects Field’s Value:

# Now I am covering the scenario where query is not using any InfoObject for which we have restriction of values in the Authorization Object. I have added division as object in query which is having full authorization access, and now we don’t have any territory object in query anymore:

Page 23: Step-By-Step SAP BI Security

 

# Even though the division object is having full authorization access, still when we run the query we get authorization error:

 

# By checking authorization log we can clearly see even though the query is not using territory InfoObject it still checks for its value at query runtime because this object is part of InfoProvider on which we have defined the query:

Page 24: Step-By-Step SAP BI Security

 

# To avoid the authorization check for the objects which are not being used in the query definition we should always add ‘:’ symbol in the authorization object field value which allows queries to run for all the values of object even if the object is not the part of the query:

 

# Once we defined ‘:’ now the query works fine (without any authorization failure):

Page 25: Step-By-Step SAP BI Security

 

# Below is the authorization log for the same:

 

Authorization Objects on InfoObject’s of type Key Figure:

# I created one test query with 2 key figures as output.

Page 26: Step-By-Step SAP BI Security

 

# Output of query:

 

# We can restrict this query to show the data only for one key figure. For this we just have to add the required key figure (Record Count - ZDWCOUNT) as value for the field 0TCAKYFNM of our test authorization object (ZDWKJTEST).

Page 27: Step-By-Step SAP BI Security

 

# Now if we run the same query it will not show data for any other key figure except the one which we added in the authorization object definition.

 

# The log also explains the reason of authorization error for 2nd key figure:

Page 28: Step-By-Step SAP BI Security

 

Authorization Objects on InfoObject’s of type Hierarchy:

# I assigned brand hierarchy on the same test query:

# When we run the query it shows data for all the data brands as well the not-assigned brands:

Page 29: Step-By-Step SAP BI Security

 

# We can restrict the hierarchy using Authorization Object to show data only for 1st Node of above displayed hierarchy:

 

# Assigned the node:

Page 30: Step-By-Step SAP BI Security

 

# Selected the Type of Authorization as ‘1’ which will allow the hierarchy to show all the nodes which are below the selected node:

Page 31: Step-By-Step SAP BI Security

 

# After adding the authorization on brand hierarchy now we only see the data for node which we restricted in the hierarchy authorization value:

Kamaljeet is a Sr. SAP BI Analyst for Forest Laboratories Inc.

Add to: del.icio.us | Digg | Reddit

Suggestions are always welcomeComment on this weblog

Page 32: Step-By-Step SAP BI Security

Showing messages 1 through 16 of 16.

Titles Only Main Topics Oldest First Thank you!

2010-02-12 10:30:31 Samuels David Business Card [Reply]

Thanks Kamaljeet!

This is BY FAR the very best and most complete description of BI 7x Analysis Authorizations available - I am sure many people are grateful to you for putting it together and explaining some of the things that are not clear from the help or TechEd/Portals conference presentations.

Its been very valuable to me, and much appreciated!

-Dave Samuels

thanks 2009-11-11 00:46:13 SUNIL Kollabathini Business Card [Reply]

Hello Sir.. thnz for the blog and itz very easy and simple to understand ... will implement soon in som escenario.... thnx again and will wait for next blog

BI Security 2009-11-08 23:31:43 Prahtap L Business Card [Reply]

Hi Kamaljeet Gi !It's wounferful blog thank you very much . looking forward somemore articles all topics.

RegardsL.Prathap

Nice Blog 2009-08-03 21:05:26 madhu tala Business Card [Reply]

Its really helpful blog.

Regards, Madhu

Great blog 2009-07-16 00:28:32 Kishore Kumar Kusupati Business Card [Reply]

Thanks Kamaljeet. This is really a very useful and important blog in terms of understanding and implementing SAP Netweaver BW security.

Best Regards,Kishore

Channel partner Security for BI 2009-06-09 07:21:49 Abdul Harivaram Business Card [Reply]

Hello,

I'm working on giving BI access to channel partners. They need to be resticted based on partner

Page 33: Step-By-Step SAP BI Security

number. Means a partner should be able to see only reports related with his contacts, employess and so on.

For this I'm planning to make 0CRM_SALESP as authorization relavent and create a variable authorization objects with $ value and based on user exit it will pull reports related with that partner.Problem is if I go with this option then the employees who need to view all reports will not be able to do so. Is there a alternate way where I can be able to both at the same time.

Appreciate your help.Thanks

Nice One 2009-06-04 11:31:33 Anandha Krishnan.R Business Card [Reply]

Nice blog to start with

Question: How to get Portal logon id reference table 2009-04-11 06:00:36 ashh jan Business Card [Reply]

In portal, I need to restrict users based on company code.When US users logged on to portal, they needs to look at the reports, which has the company code value CC10When Canadian users logged on to portal, they needs to look at the report, which has the company value CC20When Europian users logged on to portal, they needs to look at the report, which has the company value CC30Director of the company needs to look at all the reports, Company code values CC10, CC20 and CC30.For this I followed these steps:1. Info object 0COMP_CODE, checking Authorization relevent flag in business explorer flag2. Tran RSECADMIN, Click Maintenance, create Authorization object, then add special characteristics

(0TCAACTVT, 0TCAIPROV, 0TCVALID) and adding the 0COMP_CODE and double click on 0COMP_CODE and giving the value $ZCOMP and save it.3. Assigning this Authorization object to the role using standard authorization object S_RS_AUTH4. In the report, for the 0COMP_CODE, create a new variable ZAUTH_VAR with processing by optionAuthorization5. Based on user logon id, there is a process to identify which company code he belongs --> This is gapfor me --> Please advise6. CMOD, variable exit CASE I_VNAM.WHEN 'ZCOMP'or 'ZAUTH_VAR' ?IF I_STEP = 0.---> This is gap for me. Please advise.

Thanks,Ashh.

Excellent post with screen shots !!! Thanks 2009-04-08 23:03:04 Ankush Hallan Business Card [Reply]

Nice Article 2009-03-11 18:11:06 Kamaljeet Singh Business Card [Reply]

Page 34: Step-By-Step SAP BI Security

This is very good article, Looking forward from you some more article on BI Security.

Kamaljeet

Nice Article

2009-03-11 19:31:48 Kamaljeet Kharbanda Business Card [Reply]

Thanks Kamaljeet ... good to see someone by same name as mine and that too in the same field :o)

Question: Customer Exit 2009-03-06 06:18:01 Inkyung Song Business Card [Reply]

Hello.

Thank you for the great information. This helps me understand the Analysis Authorization concept well.

I have one question regarding Customer Exit. Could you please let me know how to create a customer exit variable like what you did for $ZTA?

Thank you.Inkyung

Question: Customer Exit

2009-03-06 06:26:09 Kamaljeet Kharbanda Business Card [Reply]

You don't have to create any variable for it, just define it in your CMOD code and it will take care of it automatically.

Basically when you run any query it always check for authorization of all the auth relevant objects, and if in the auth object you have defined any value starting with '$' it checks the code of CMOD to get the value of that field at runtime.

Kamaljeet

Question: Customer Exit 2009-09-18 08:43:42 Birgit Stephan Business Card [Reply]

Hello Kamaljeet,thank you very much for this great blog.

I created also authorization object with filling by customer exit variable, so I was a little unsure about your comment:"You don't have to create any variable for it, just define it in your CMOD code and it will take care of it automatically. "

When I assign a variable for example $ABC in rsecadmin and this variable is not availableI get the following message:"This variable does not exist or does not have type Customer Exit.Create a variable in the Query Designer ..."

I also get this message, when the variable is

Page 35: Step-By-Step SAP BI Security

available in cmod.

So perhaps you could clarify this for me.

Thank you very much and best regards,Birgit

Excellent Blog 2009-02-27 02:02:51 Babu Jayendran Business Card [Reply]

Thanks Kamaljeet for your very useful inputs on BI Security

Excellent Blog

2009-03-14 04:57:30 imran mulani Business Card [Reply]

Its really helpful blog.Thanks kamaljeet, do you have any customer exit templates?

Showing messages 1 through 16 of 16.