Hi,
We are on Apps 9 - looking for a way to log users out of the system and then lock them out. Except for a limited number of Senior Finance users. We have an Release to apply so do not want any accidental transactions occurring.
Hi,
We are on Apps 9 - looking for a way to log users out of the system and then lock them out. Except for a limited number of Senior Finance users. We have an Release to apply so do not want any accidental transactions occurring.
A couple questions,
You have a couple different options available. A simple PL/SQL script can be created if you have a list of the usernames you want locked. The script would perform an “ALTER USER <account> ACCOUNT LOCK;” command. When you want to unlock the accounts you have the script perform “ALTER USER <account> ACCOUNT UNLOCK;”.
If you have thousands of users you could take away the “CREATE SESSION” from their Oracle roles. This is more complex because you have to make sure you leave the ability to create a session in place for the users you want to have access.
Hi,
We are on Apps 9 - looking for a way to log users out of the system and then lock them out. Except for a limited number of Senior Finance users. We have an Release to apply so do not want any accidental transactions occurring.
You could just simply select the users in the 'Active Users' screen and set them to inactive.
HI,
It would be a couple of hundred users - except for 2 off Sys Admin and 2 off Finance users.
This would be identified by username.
Would any of the options ‘kill’ any open sessions?
HI,
It would be a couple of hundred users - except for 2 off Sys Admin and 2 off Finance users.
This would be identified by username.
Would any of the options ‘kill’ any open sessions?
Try locking your colleagues account and see what happens. :)
When applying release, ideally you want no users in the system at all so not sure why you want to allow specific users in the system.
Our process:
declare
attr_ VARCHAR2(2000);
info_ VARCHAR2(2000);
objid_ VARCHAR2(20);
objversion_ VARCHAR2(100);
CURSOR openOracleUsers IS
select username from oracle_account where profile <> 'IFS_INTERNAL' and account_status = 'OPEN';
Begin
FOR rec_ IN openOracleUsers LOOP
Client_SYS.Clear_Attr(attr_);
Client_SYS.Add_To_Attr('TO_USER',rec_.username,attr_);
Client_SYS.Add_To_Attr('MESSAGE','The LIVE system will be taken down for releases between 23:00 20/11/2019 and 04:00 21/11/2019 - PLEASE ensure you are not logged in',attr_);
Client_SYS.Add_To_Attr('STREAM_TYPE','Event',attr_);
Client_SYS.Add_To_Attr('VISIBLE',Fnd_Boolean_API.Decode('TRUE'),attr_);
Client_SYS.Add_To_Attr('READ',Fnd_Boolean_API.Decode('FALSE'),attr_);
ifsapp.FND_STREAM_API.NEW__(info_,objid_,objversion_,attr_,'DO');
commit;
END LOOP;
end;
P.s. if you wanted to lock the users out you could try this
declare
lock_ varchar2(2000);
unlock_ varchar2(2000);
CURSOR lockAccount IS
select username from oracle_account where profile <> 'IFS_INTERNAL' and account_status = 'OPEN' and username not in ('PUT','NAMES','HERE','YOU','DO','NOT','WANT','TO','LOCK');
CURSOR unlockAccount IS
select username from oracle_account where trunc(lock_date) = to_date('20/11/2019','DD/MM/YYYY'); --Change date to the date the accounts were locked (KEEP IN MIND - ANY LEGITIMATE LOCKS ON THIS DATE WILL ALSO BE REVERSED!)
begin
FOR rec_ IN lockAccount LOOP
lock_ := 'ALTER USER "' || rec_.username || '" ACCOUNT LOCK';
execute immediate lock_;
END LOOP;
/*FOR rec_ IN unlockAccount LOOP
unlock_:= 'ALTER USER "' || rec_.username || '" ACCOUNT UNLOCK';
execute immediate unlock_;
END LOOP;*/
end;
There are many ways to perform this I think the easiest would be to do the following,
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.