Password Verification : Enforcing Password Complexity
Password complexity is enforced using a verification function. Oracle provide an example password verification function in the "$ORACLE_HOME/rdbms/admin/utlpwdmg.sql" file, but you can code a custom one if you prefer. The function must accept three parameters (username, password and old_password) and return a boolean value, where the value TRUE signifies the password is valid. The simple example below just forces the password to be at least 8 characters long.CREATE OR REPLACE FUNCTION my_verification_function ( username VARCHAR2, password VARCHAR2, old_password VARCHAR2) RETURN BOOLEAN AS BEGIN IF LENGTH(password) < 8 THEN RETURN FALSE; ELSE RETURN TRUE; END IF; END my_verification_function; /
In the above we have restricted that password must contain greater that 8 characters.
Once the function is compiled under the SYS schema it can be referenced by the
PASSWORD_VERIFY_FUNCTION
parameter of a profile.You can enable Password verify Function as below:
The code below assigns the completed profile to a user and tests it.ALTER PROFILE my_profile LIMIT PASSWORD_VERIFY_FUNCTION my_verification_function;
A more complete example of a password verification function is provided by the "$ORACLE_HOME/rdbms/admin/utlpwdmg.sql" script.SQL> ALTER USER scott PROFILE my_profile; User altered. SQL> ALTER USER scott IDENTIFIED BY small; ALTER USER scott IDENTIFIED BY small * ERROR at line 1: ORA-28003: password verification for the specified password failed ORA-28003: password verification for the specified password failed SQL> ALTER USER scott IDENTIFIED BY much_bigger; User altered. SQL>
If you have trouble thinking of strong passwords, try using a password generator like RandPass.com. It creates random strong passwords with a phonetic sound, making them easier to remember.
In Oracle 11g the "$ORACLE_HOME/rdbms/admin/utlpwdmg.sql" script has been updated to improve the default password verification function. It also applies the function to the DEFAULT profile, enabling it for all users.
No comments :
Post a Comment