22.12.10

SAP Note 15399 - SQL Error "INF-952: User's password not correct."

Symptom:
The connection to the database can not be opened. In more detail, the following symptoms can occur:
    1. Starting the R/3 System with 'startsap' terminates with the error message:

R3trans test connect to the database failed
Return code: 12

The explicit check of the connection to the database with 'R3trans -d' terminates with the error message:

2EETW169 no connect possible: "DBMS = INFORMIX --- ...

The log file of R3trans contains entries such as:

***LOG (BY2): sql error -952 performing CON
***LOG (BY0): INF-952: User's password is not correct
for the database server

    2. The R/3 processes cannot connect correctly to the database. In the R/3 trace files (2.xy: 'dev_db*'; 3.xy: 'dev_w*'), there are entries such as:

***LOG (BY2): sql error -952 performing CON
***LOG (BY0): INF-952: User's password is not correct
for the database server

    3. The Informix log file ('online_..log') contains the error message:

listener-thread: err = -952: User's password is not correct
for the database server

    4. The execution of 'update statistics' via transaction DB02 using the program 'infupdstat' terminates with the SQL error -952. The file 'infupdstat.log' contains entries such as:

SQL-Error: -952. command failed.
User's password is not correct for the database server.

    5. The execution of an 'archive' or 'backup' via Transaction DB13 using the program 'infarcexe' or 'infbarexe' terminates with the SQL error -952. The backup with the Informix programs ('ontape', 'onarchive' 'onbar') may still work.
    6. The license check program 'saplicense' that is implicitly executed when you start the database with 'startdb' as well as when manually calling 'saplicense -check' terminates with SQL error -952 although a correct license is installed.
Additional key words


STARTSAP, STARTDB, TP, R3TRANS, UPDATE STATISTICS, INFUPDSTAT, DB02, INFARCEXE, DB13, SAPLICENSE, INFORMIX_DB_PASSWD, SAPUSER, INF952

Cause and prerequisites


This error may have the following causes (sorted according to their likelihood):

    1. The password used by the programs to connect to the database is wrong.

The database connect is usually performed as the user 'sapr3'. The password to connect to the database must correspond to the login password for the operating system user 'sapr3' on the database host. Depending on the R/3 version, the individual programs determine the password for 'sapr3' as follows:

  • Up to R/3 Release 2.1I/2.2C:

The password is always determined from the environment variable INFORMIX_DB_PASSWD of the parent process.

  • From R/3 Release 2.1J/2.2D:

The password is determined from the database table '<>adm'.sapuser.

Caution:

In R/3 Release 2.1J/2.2D, some programs have not been switched to this logic. They still determine the password using the old method via the environment variable INFORMIX_DB_PASSWD of the parent process. From R/3 Release 2.1L/2.2E, these programs have also been changed.

These programs are: saplicense, infupdstat, infarcexe.

The password used by the programs is too long.

    2. The database system cannot read the file '/etc/shadow', as the program 'oninit' has the wrong authorizations.
    3. The permissions for the directory '/INFORMIXTMP' in the database host are wrong, and the file '.inf.sapinf' cannot be accessed by the user 'adm'.
    4. The value set by the operating system for the user 'informix' for the 'Maximum number of file descriptors' has been reached. Until now, this situation has only occurred when the database has been enhanced previously by adding a new 'chunk'. So far, it has only been observed on the platform SUN.
Solution


The problem can be corrected as follows (the numbering for the solutions corresponds to the listed causes):

    1. Adjust the logon password used by the the programs to match that of the operating system user 'sapr3' (notice the overlap in the two procedures for R/3 Releases 2.1K and 2.2D):
  • Up to (and including) R/3 Release 2.1J/2.2D:

Set the value of the environment variable INFORMIX_DB_PASSWD for the user 'adm' to the password of the user 'sapr3'.

Adjust the login files for the user 'adm'

. informix.csh and .informix.sh (up to 2.1F)
.dbenv.csh and .dbenv.sh, (from 2.1G/2.2A)
.dbenv_.csh and .dbenv_.sh (from 3.0C)

correspondingly, to permanently eliminate the problem.

  • From (and including) R/3 Release 2.1J/2.2D:

Check the password used by the programs to log on to the database with:

$ su - adm
echo "select * from sapuser
where userid = 'sapr3';" | dbaccess

If this does not match the password for the operating system user 'sapr3' on the database host, correct this value, for example, with:

$ su - adm
$ echo "update sapuser set passwd = ''
where userid = 'sapr3';" | dbaccess

Restart the R/3 System after this.

    2. Check whether the password for the user 'sapr3' is longer than 6 characters. Depending on the operating system only 6 or 8 characters are evalued. It then seems as if the passwords match. However, when connecting the SAP programs (tp, R3trans, sapdba) this results in an error. If this is the case, reduce the length of the password.
    3. Check the authorizations of the program 'oninit' with:

$ ls -la $INFORMIXDIR/bin/oninit

The output should look like this:

-rwsr-sr-- root informix /informix//bin/oninit

If this is not the case, the software installation on the database system cannot be used, and the software must be re-installed. R/3 and the database must be stopped to do this. It is then sufficient, depending on the hardware platform to run 'installesqrt/installonline' or 'pkgadd' according to the installation guide, chapter 'Installation of the Database Software', 'Understanding the Installation Phase' (sections 2.a and 2.b).

    4. Check the permissions for the directory '/INFORMIXTMP' with:

$ ls -ald /INFORMIXTMP

The output should look like this:

drwxrwxr-x root informix /INFORMIXTMP

If this is not the case, correct it with:

$ su - root
$ chmod 775 /INFORMIXTMP

    5. Check the current value for the 'Maximum number of file descriptors' for the operating system user with:

$ limit descriptors

The output should look like this:

descriptors 1024

If the entered value is significantly smaller than 1024, increase this by using the statement

$ limit descriptors 1024

to explicitly increase the value for the duration of the logon. You should add this statement to the login file of the user 'informix' to eliminate the problem permanently.

No comments:

Post a Comment