Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

User roles

Former Member
0 Likes
1,886

Now I have got a problem which I really have no idea how to solve it. Really appreciate if anyone can give me any clue or suggestion.

<u>Background:</u>

User <b>AAA</b> is doing transaction <b>TTT</b> (a customize transaction) but she gets error message "You have no authorization for this transaction in plant <b>PPP</b>".

However, her colleague can do the same transaction.

Actually user <b>AAA</b> has more roles than her colleague has. (<b>AAA</b> has all roles her colleague has + more other roles)

<u>Current solution:</u>

After I removed a role <b>RRR1</b> (which contains the tcode <b>TTT</b>) from the id, the result was OK. (although other derived roles (<b>RRR2-RRR5</b>) still exist in the ID)

(to remove other roles cannot solve the error)

But I cannot find out why only role <b>RRR1</b> should prevent the users to perform <b>TTT</b>.

Should you have any idea how to investigate it, please let me know. Thanks a lot.

I have checked SU53 and ST01. However, it seems to be not related to the issue (ST01, all are 0) (SU53 - the administration object is required)

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,620

Hello Sirirak,

removing the role solved the authorization issue.. this is pretty surprising. However since you mention that this is custom transaction for a custom code I would advise you to check the code. Look for Authority_Check function module. The user is missing authorization for the auth object mentioned there.

Had it been standard SAP t-code then the authority checks would have been maintained in SU20 and they would reflected in SU24 but in this case I am not sure if this has been done.

Regards.

Ruchit.

Message was edited by: Ruchit Khushu

Message was edited by: Ruchit Khushu

Now I have got a problem which I really have no idea how to solve it. Really appreciate if anyone can give me any clue or suggestion.

<u>Background:</u>

User <b>AAA</b> is doing transaction <b>TTT</b> (a customize transaction) but she gets error message "You have no authorization for this transaction in plant <b>PPP</b>".

However, her colleague can do the same transaction.

Actually user <b>AAA</b> has more roles than her colleague has. (<b>AAA</b> has all roles her colleague has + more other roles)

<u>Current solution:</u>

After I removed a role <b>RRR1</b> (which contains the tcode <b>TTT</b>) from the id, the result was OK. (although other derived roles (<b>RRR2-RRR5</b>) still exist in the ID)

(to remove other roles cannot solve the error)

But I cannot find out why only role <b>RRR1</b> should prevent the users to perform <b>TTT</b>.

Should you have any idea how to investigate it, please let me know. Thanks a lot.

I have checked SU53 and ST01. However, it seems to be not related to the issue (ST01, all are 0) (SU53 - the administration object is required)

8 REPLIES 8
Read only

Former Member
0 Likes
1,621

Hello Sirirak,

removing the role solved the authorization issue.. this is pretty surprising. However since you mention that this is custom transaction for a custom code I would advise you to check the code. Look for Authority_Check function module. The user is missing authorization for the auth object mentioned there.

Had it been standard SAP t-code then the authority checks would have been maintained in SU20 and they would reflected in SU24 but in this case I am not sure if this has been done.

Regards.

Ruchit.

Message was edited by: Ruchit Khushu

Message was edited by: Ruchit Khushu

Read only

Hank
Explorer
0 Likes
1,620

Hi Sirirak, Try Ruchit solution 1st, but if not successful, please verify if user AAA has not exceed their buffer size.

HB

Read only

Former Member
0 Likes
1,620

Hi,

Try copying the user AAA and try the same access. Make sure you run a

user compare. If it works, then remove all of the roles from user id AAA

and save. Then re-assign all of the same roles, save and run user compare.

Found that especially in 4.6C the user buffer gets "corrupted" and this

is only way to solve issue.

Read only

Former Member
0 Likes
1,620

Hello Sri,

You mentioned that user AAA has more roles than her colleague and that cab a problem also. Size of raw dafa field limits the maximum number of roles you can assign a user.

Good luck

Read only

Former Member
0 Likes
1,620

Sound to me like a pretty standard case of buffer overflow. You can check the total number of authorizations by asking the user to run SU56. You can also check what is the buffer size (auth/auth_number_in_userbuffer) by either running RSPARAM thru SE38 or running RZ11, the default setting is 2000.

One interesting fact all Security folks might be interested, do so research on F_IT_ALV, this is one auth object, if a user has this auth object, additional auth check will be carry out. If the user do not have this auth object, the user has full auth to change the layout (auth-check will not be perform).

Thanks,

Lye

Read only

0 Likes
1,620

> One interesting fact all Security folks might be

> interested, do so research on F_IT_ALV, this is one

> auth object, if a user has this auth object,

> additional auth check will be carry out. If the user

> do not have this auth object, the user has full auth

> to change the layout (auth-check will not be

> perform).

Well, that's an example for bad usage of an existing concept. I've even seen once an application that has submitted an AUTHORITY-CHECK on some object and deactivated some functionality if SY-SUBRC = 0 (i.e. when the user does have the requested authorization) ...

I'd recommend to analyse and compare the authorization trace (ST01) of both actions. It is not normal that an user which is assigned to a more powerful authorizations than another user is blocked from certain actions while the less authorized user is granted access.

Regards, Wolfgang

Read only

Former Member
0 Likes
1,620

Hi all,

Thanks a lot for your answer!! I'm really appreciated to know that there're many people giving me great support!!!

I have tried many ways:

Firstly, I have created a test user with only the (problem) role <b>RRR1</b> and another derived role that can access to the plant. However it's also not working which means that it's not related to user buffer.

Secondly, I also do trace (st01) all authorization objects are passed (value 0).

In addition, the code check, since it's a derived role and the user with other derived role can access. I don't think it's a Authority Check problem.

At last, I created a new derived role (with the same organization value as the role <b>RRR1</b>. With this role assigned to user, it canbe executed sucessfully!!<u> I have compared the new role with the old one in SUIM and AGR_1251, AGR_1252 as well. However, everything is the same.</u> I don't know why?? Do you think it's SAP bug?

<b>I'm also thinking if someone has broken the link of organization level in this derived role? How can I know if the link has already broken? Please advise.</b>

Read only

0 Likes
1,620

Hi,

did you check the profile that is assigned to the derived role?

May be the profile itself is damaged. If you have transported another role with the same profile name, the new role will override your RRR1 profile definition.