Re: Changing Of Password In Oracle Application
Date: 1995/12/26
Message-ID: <4bpe3q$4bl_at_xenon.brooks.af.mil>
mcblohkc_at_leonis.nus.sg (Loh Kir Chern) wrote:
Loh,
Try a variation of the following using "Forms_DLL", this version creates a user, alters or deletes. I have seperate, but less straight forward ways to change passwords. For your purposes, you should only need, 'ALTER USER IDENTIFIED BY ' || :Block:new_password || ';' and makesure to play with the display properties for Block:new_password.
Good luck:
Richard Wark Brooks AFB Oracle DBA rwark_at_txdirect.net
http://www.txdirect.net/users/rwark
code sample follows - used on-mouse-click of a button: (sorry about the formatting..)
Begin
IF :USER_INFO_BLOCK.action_item
is null then
:USER_INFO_BLOCK.action_item
:= 'ADD'; END IF;
IF :USER_INFO_BLOCK.action_item = 'ADD'
THEN :USER_INFO_BLOCK.SQL_MESSAGE := 'CREATE USER ' ||
:USER_INFO_BLOCK.USERNAME ||
' IDENTIFIED BY ' || :USER_INFO_BLOCK.PASSWORD; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User Creation Failed'); ELSE null;/* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' Created'); */ END IF; :USER_INFO_BLOCK.SQL_MESSAGE := 'ALTER USER ' ||
:USER_INFO_BLOCK.USERNAME ||
' DEFAULT TABLESPACE USERS'; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User Default Tablespace Failed'); ELSE /* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' Tablespace defined'); */ NULL; END IF; :USER_INFO_BLOCK.SQL_MESSAGE := 'ALTER USER ' ||
:USER_INFO_BLOCK.USERNAME ||
' TEMPORARY TABLESPACE TEMP'; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User Temporary Tablespace Failed'); ELSE /* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' Temp defined as TEMP'); */ NULL; END IF; :USER_INFO_BLOCK.SQL_MESSAGE := 'ALTER USER ' ||
:USER_INFO_BLOCK.USERNAME ||
' QUOTA UNLIMITED ON TEMP'; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User TS Quota FAILED'); ELSE /* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' TS Quota set'); */ NULL; END IF; :USER_INFO_BLOCK.SQL_MESSAGE := 'ALTER USER ' ||
:USER_INFO_BLOCK.USERNAME ||
' DEFAULT ROLE ALL'; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User Default Role not set'); ELSE /* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' Default Role set'); */ NULL; END IF; GO_BLOCK('NEW_ROLES'); FIRST_RECORD; LOOP :USER_INFO_BLOCK.SQL_MESSAGE := 'GRANT '|| :ROLES_TO_GRANT || ' TO ' || :USER_INFO_BLOCK.USERNAME; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User '|| :ROLES_TO_GRANT || ' Role Failed'); ELSE /* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' GRANTED '||
:ROLES_TO_GRANT); */
NULL; END IF; NEXT_RECORD; IF :ROLES_TO_GRANT is null THEN EXIT; END IF; END LOOP; GO_BLOCK('NEW_ROLES'); Clear_BLOCK; GO_BLOCK('DBA_ROLE_PRIVS'); EXECUTE_QUERY; ELSIF :USER_INFO_BLOCK.action_item = 'ALTER' THEN GO_BLOCK('NEW_ROLES'); FIRST_RECORD; LOOP :USER_INFO_BLOCK.SQL_MESSAGE := 'GRANT '|| :ROLES_TO_GRANT || ' TO ' || :USER_INFO_BLOCK.USERNAME; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User '|| :ROLES_TO_GRANT || ' Role Failed'); ELSE NULL; /* Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' GRANTED '|| :ROLES_TO_GRANT); */ END IF; NEXT_RECORD; IF :ROLES_TO_GRANT is null THEN EXIT; END IF; END LOOP; GO_BLOCK('NEW_ROLES'); Clear_BLOCK; GO_BLOCK('DBA_ROLE_PRIVS'); EXECUTE_QUERY; ELSIF :USER_INFO_BLOCK.action_item = 'DELETE' THEN :USER_INFO_BLOCK.SQL_MESSAGE := 'DROP USER ' || :USER_INFO_BLOCK.USERNAME || ' CASCADE'; FORMS_DDL(:USER_INFO_BLOCK.SQL_MESSAGE); IF NOT Form_Success THEN Message ('User Drop Failed'); ELSE GO_BLOCK('NEW_ROLES'); Clear_BLOCK; Message ('User ' || :USER_INFO_BLOCK.USERNAME || ' Dropped'); END IF; GO_BLOCK('USER_INFO_BLOCK'); Clear_BLOCK; GO_BLOCK('DBA_ROLE_PRIVS'); Clear_BLOCK; GO_BLOCK('NEW_ROLES'); Clear_BLOCK; /* GO_BLOCK('LOGIN_BLOCK'); */
END IF;
END;
>Dear World,
>We developed a MIS application using Forms 4.0.13.20.0, is there anyway >that we can build a friendly and convenient way for users to change their >password in the application, besides having to exit the application and >going via sqlplus, teaching them "alter user .... identified by ... "? It >should be GUI, password would not be echoed when typing etc. Does anyone >have such experience ? Many Thanks and A Merry Christmas to all ! >Rgds >Kir Chern, Loh >(Inst Of Molecular And Cell Biology
>National University Of Singapore
>Email : mcblohkc_at_leonis.nus.sg)
Richard A. Wark warkr_at_vanadium.brooks.af.mil DBA - Computer Sciences Corp. http://www.txdirect.net/users/rwarkBrooks AFB, San Antonio TEXAS Received on Tue Dec 26 1995 - 00:00:00 CET