Go to primary content
Oracle® Health Sciences WebSDM and Empirica Study Installation Instructions
Release 3.1.2.1 for Windows 2003/2008 Server
E40537-03
  Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

B Optional: Creating Alternate Profiles

WebSDM creates a database account for each application and study that is registered. The accounts associated with studies own the tables that contain the clinical data comprising a study. These tables are created and populated during loading and checking runs. The accounts associated with applications are reserved for future use.

WebSDM assigns randomly generated passwords for these accounts. The passwords satisfy the following criteria:

WebSDM does not support the expiration or resetting of the password for these accounts. If your site has installed a new version of WebSDM and your database is configured with a DEFAULT profile that imposes limits on the duration of passwords or that uses a password verifying function more restrictive than the criteria specified above, you must define an additional profile and use the WebSDM site options activity to associate that profile with the application and study accounts.

The following sample script creates a profile for the application and study accounts. You can modify the script to meet your company security policy requirements. Execute it while connected as the SYS user.

CREATE OR REPLACE FUNCTION verify_websdm_acct_pw
(username varchar2,
  password varchar2,
  old_password varchar2)
  RETURN boolean IS 
   n boolean;
   m integer;
   differ integer;
   isdigit boolean;
   ischar  boolean;
   ispunct boolean;
   digitarray varchar2(20);
   punctarray varchar2(25);
   chararray varchar2(52);
 
BEGIN 
   digitarray:= '0123456789';
   chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';               
   punctarray:='!"#$%&()``*+,-/:;<=>?_';
 
   -- Check for the minimum length of the password
   IF length(password) < 16 THEN
      raise_application_error(-20002, 'Password length less than 16');
   END IF;
   -- Check if the password contains at least one letter, one digit and one
   -- punctuation mark.
   -- 1. Check for the digit
   isdigit:=FALSE;
   m := length(password);
   FOR i IN 1..10 LOOP 
      FOR j IN 1..m LOOP 
         IF substr(password,j,1) = substr(digitarray,i,1) THEN
            isdigit:=TRUE;
             GOTO findchar;
         END IF;
      END LOOP;
   END LOOP;
   IF isdigit = FALSE THEN
      raise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation');
   END IF;
   -- 2. Check for the character
   <<findchar>>
   ischar:=FALSE;
   FOR i IN 1..length(chararray) LOOP 
      FOR j IN 1..m LOOP 
         IF substr(password,j,1) = substr(chararray,i,1) THEN
            ischar:=TRUE;
             GOTO findpunct;
         END IF;
      END LOOP;
   END LOOP;
   IF ischar = FALSE THEN
      raise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation');
   END IF;
   -- 3. Check for the punctuation
   <<findpunct>>
   ispunct:=FALSE;
   FOR i IN 1..length(punctarray) LOOP 
      FOR j IN 1..m LOOP 
         IF substr(password,j,1) = substr(punctarray,i,1) THEN
            ispunct:=TRUE;
             GOTO endsearch;
         END IF;
      END LOOP;
   END LOOP;
   IF ispunct = FALSE THEN
      raise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation');
   END IF;
 
   <<endsearch>>   
   -- Everything is fine; return TRUE ;   
   RETURN(TRUE);
END;
/
show errors;
 
create profile WEBSDM_STUDIES_PROFILE limit 
  COMPOSITE_LIMIT  UNLIMITED
  SESSIONS_PER_USER  UNLIMITED
  CPU_PER_SESSION  UNLIMITED
  CPU_PER_CALL  UNLIMITED
  LOGICAL_READS_PER_SESSION  UNLIMITED
  LOGICAL_READS_PER_CALL  UNLIMITED
  IDLE_TIME  UNLIMITED
  CONNECT_TIME  UNLIMITED
  PRIVATE_SGA  UNLIMITED
  FAILED_LOGIN_ATTEMPTS  5
  PASSWORD_LIFE_TIME  UNLIMITED
  PASSWORD_REUSE_TIME  UNLIMITED
  PASSWORD_REUSE_MAX  UNLIMITED
  PASSWORD_LOCK_TIME  UNLIMITED
  PASSWORD_GRACE_TIME  UNLIMITED
  PASSWORD_VERIFY_FUNCTION verify_websdm_acct_pw

After creating a profile, use Settings > Set Site Options in WebSDM to associate it with application and study accounts. Use the control labeled Profile for new Accounts in the Database Accounts and File System Structure section to select it.

For more information, see the Oracle Database Security Guide, 10g Release 2, Chapter 7 Security Policies, Section Password Complexity Verification, or Oracle Database Security Guide, 11g Release 2, Chapter 3, Configuring Authentication, Section Customizing Password Complexity Verification.