Home » RDBMS Server » Enterprise Manager » Problems configuring OEM10g Database Control
Problems configuring OEM10g Database Control [message #142095] Thu, 13 October 2005 08:08 Go to next message
Uwe
Messages: 260
Registered: February 2003
Location: Zürich, Switzerland
Senior Member
Hi all,

I just try to install/configure Database Control on a HP Itanium Machine.
If I start the emca it seems to work fine, but ib breaks down creating the user
Create MGMT_VIEW user..

DECLARE
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20003: Password should contain at least one \
digit, one character and one punctuation

I have had character (capital and lower), digits and two $ in the passwords for sysman and dbsnmp.
What does this message mean to me ? Whatt did I do wrong ?

kind regards
Uwe
Re: Problems configuring OEM10g Database Control [message #142296 is a reply to message #142095] Fri, 14 October 2005 01:51 Go to previous messageGo to next message
tarundua
Messages: 1080
Registered: June 2005
Location: India
Senior Member
Password verification function is active on your database , so it would be better to look into the definition of that function . And as i found it i think the default ( provided by oracle) password verify function is active .

Quote:


SQL> select profile, resource_name, resource_type, limit from dba_profiles;

PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- -----------------------
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3
DEFAULT PASSWORD_LIFE_TIME PASSWORD 60
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD 1800
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTION



what is the result of above query on your machine .

Can you see that VERIFY_FUNCTION or any other name there .

and then look into the text for that function, like this

SQL> select text from user_source where name='VERIFY_FUNCTION';


now i hope you should get the answer of your problem .

And one more thing , the error you got is mentioned in the default script provided by oracle. you can find it on your database server '$ORACLE_HOME/rdbms/admin/utlpwdmg.sql'


[Updated on: Fri, 14 October 2005 01:55]

Report message to a moderator

Re: Problems configuring OEM10g Database Control [message #142316 is a reply to message #142296] Fri, 14 October 2005 02:28 Go to previous messageGo to next message
Uwe
Messages: 260
Registered: February 2003
Location: Zürich, Switzerland
Senior Member
Hi,
In first step you're right.
We got VERIFY_FUNCTION.

But selecting the text gave "no rows selected"

That seems it is not installed but it works.

any new suggestions ?

rgds
Uwe

Re: Problems configuring OEM10g Database Control [message #142318 is a reply to message #142316] Fri, 14 October 2005 02:30 Go to previous messageGo to next message
tarundua
Messages: 1080
Registered: June 2005
Location: India
Senior Member


Did you write the name of verify function in capital letters as i wrote in the command .

 SQL> select text from user_source where name='VERIFY_FUNCTION';
 


if yes then try querying vice-versa .i.e write in small letters .

it should be there .
Re: Problems configuring OEM10g Database Control [message #142324 is a reply to message #142095] Fri, 14 October 2005 02:41 Go to previous messageGo to next message
Uwe
Messages: 260
Registered: February 2003
Location: Zürich, Switzerland
Senior Member
No,

as I lokked into this table I got the last entry starts with "R"
Re: Problems configuring OEM10g Database Control [message #142327 is a reply to message #142324] Fri, 14 October 2005 02:45 Go to previous messageGo to next message
tarundua
Messages: 1080
Registered: June 2005
Location: India
Senior Member

can you please post the query you are running and the output .

I hope you must be running this query after logging in as 'SYS'


SQL> show user
USER is "SCOTT"

 SQL> select text from user_source where name='VERIFY_FUNCTION';

no rows selected

 
SQL> show user;
USER is "SYS"

SQL> select text from user_source where name='VERIFY_FUNCTION';

TEXT
----------------------------------------------------------------------------------------------------
FUNCTION verify_function
(username varchar2,
  password varchar2,
  old_password varchar2)
  RETURN boolean IS
   n boolean;
   m integer;
   differ integer;
   isdigit boolean;
   ischar  boolean;
   ispunct boolean;

TEXT
----------------------------------------------------------------------------------------------------
   digitarray varchar2(20);
   punctarray varchar2(25);
   chararray varchar2(52);

BEGIN
   digitarray:= '0123456789';
   chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
   punctarray:='!"#$%&()``*+,-/:;<=>?_';

   -- Check if the password is same as the username
   IF NLS_LOWER(password) = NLS_LOWER(username) THEN

TEXT
----------------------------------------------------------------------------------------------------
     raise_application_error(-20001, 'Password same as or similar to user');
   END IF;

   -- Check for the minimum length of the password
   IF length(password) < 4 THEN
      raise_application_error(-20002, 'Password length less than 4');
   END IF;

   -- Check if the password is too simple. A dictionary of words may be
   -- maintained and a check may be made so as not to allow the words
   -- that are too simple for the password.

TEXT
----------------------------------------------------------------------------------------------------
   IF NLS_LOWER(password) IN ('welcome', 'database', 'account', 'user', 'password', 'oracle', 'compu
      raise_application_error(-20002, 'Password too simple');
   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

TEXT
----------------------------------------------------------------------------------------------------
         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
   END IF;
   -- 2. Check for the character
   <<findchar>>

TEXT
----------------------------------------------------------------------------------------------------
   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 \

TEXT
----------------------------------------------------------------------------------------------------
              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;

TEXT
----------------------------------------------------------------------------------------------------
      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>>
   -- Check if the password differs from the previous password by at least
   -- 3 letters
   IF old_password IS NOT NULL THEN

TEXT
----------------------------------------------------------------------------------------------------
     differ := length(old_password) - length(password);

     IF abs(differ) < 3 THEN
       IF length(password) < length(old_password) THEN
         m := length(password);
       ELSE
         m := length(old_password);
       END IF;

       differ := abs(differ);
       FOR i IN 1..m LOOP

TEXT
----------------------------------------------------------------------------------------------------
         IF substr(password,i,1) != substr(old_password,i,1) THEN
           differ := differ + 1;
         END IF;
       END LOOP;

       IF differ < 3 THEN
         raise_application_error(-20004, 'Password should differ by at \
         least 3 characters');
       END IF;
     END IF;
   END IF;

TEXT
----------------------------------------------------------------------------------------------------
   -- Everything is fine; return TRUE ;
   RETURN(TRUE);
END;

113 rows selected.


 

Re: Problems configuring OEM10g Database Control [message #142328 is a reply to message #142095] Fri, 14 October 2005 02:58 Go to previous messageGo to next message
Uwe
Messages: 260
Registered: February 2003
Location: Zürich, Switzerland
Senior Member
That works, I was in as system

looks like the routine from the sql-statement you suggested.
But the things I have had within the passwords, except the sys password. But the sys/system passwords work in sqlplus without punctuations.
The passwords I gave for sysman and dbsnmp have had all recommended things in it.

Do you think the sys does also need to get this even if sqlplus does not hit this function ?


Re: Problems configuring OEM10g Database Control [message #142335 is a reply to message #142328] Fri, 14 October 2005 03:58 Go to previous messageGo to next message
tarundua
Messages: 1080
Registered: June 2005
Location: India
Senior Member

-->
Quote:

Do you think the sys does also need to get this even if sqlplus does not hit this function


I think sys's password doesnt need to abide this function because its not stored in Oracle ( its stored in a password file stored at OS level) , so no sqlplus intervention.
( others can correct if explanation is wrong)

-->
Quote:


The passwords I gave for sysman and dbsnmp have had all recommended things in it.


There must be something wrong otherwise Oracle would not have generated that error.
Just an alternate , if you dont need that function to be implemented , you can set it to NULL

 
 SQL> alter profile default limit
  2  password_verify_function null;

Profile altered.
SQL> select resource_name, resource_type, limit  from dba_profiles where resource_name='PASSWORD_VERIFY_FUNCTION';

RESOURCE_NAME                    RESOURCE LIMIT
-------------------------------- -------- --------------------------
PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
 




Re: Problems configuring OEM10g Database Control [message #142396 is a reply to message #142095] Fri, 14 October 2005 08:01 Go to previous messageGo to next message
Uwe
Messages: 260
Registered: February 2003
Location: Zürich, Switzerland
Senior Member
This seems to fix the problem, but a new one is coming up.
The logfile shows no errors, but at the end of the screen-output there is written about errors in logfile.
Now if I try to start emctl I got :
EM Configuration issue.
/ora1/app/oracle/product/10.1.x/<hostname>_<SID> not found.

how to start em ? or what do i need to fix now ?

Re: Problems configuring OEM10g Database Control [message #142634 is a reply to message #142396] Mon, 17 October 2005 00:42 Go to previous message
tarundua
Messages: 1080
Registered: June 2005
Location: India
Senior Member
hi,

Even i got the same error when i tried to start emctl . I have installed 10g on my machine but new to it. If i get anything then surely i will post or else you can raise a new topic for this on the same forum.


[ EDIT]
now i am able to access.

Note : Can you able to access the database from SQLPLUS , is it UP and running . Is Path is set properly to 10g bin ?

I have a Windows machine and now i am able to start the dbconsole service .Earlier path was not set properly and Oracleservice for windows was not running.




regards,
tarun

[Updated on: Mon, 17 October 2005 01:11]

Report message to a moderator

Previous Topic: import
Next Topic: Installing OEM
Goto Forum:
  


Current Time: Mon May 16 06:36:14 CDT 2022