Kbase P172999: Connecting to a database from the mpro command line works, but from the ABL connect statement it pro
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  14/09/2010 |
|
Status: Verified
SYMPTOM(s):
Connecting to a database from the mpro command line works, but from the ABL connect statement it produces error (43) with errno=13.
** Cannot find or open file <dbname>.<extent>, errno = 13. (43)
** Cannot find or open file <dbname>.<extent>, errno = 0. (43)
The following 4GL connect statement fails to connect if run from program or procedure editor: CONNECT <dbname>.
FACT(s) (Environment):
The following command line connects successfully to the database: mpro <dbname>
Errno=13 on UNIX is defined as "#define EACCES 13 /* Permission denied */"
Errno=0 on UNIX is defined as an Unknown Error.
UNIX
Progress 9.x
OpenEdge 10.x
CAUSE:
The Progress executables are set correctly but the database file permissions are not.
Typically, the Progress _progres executable is owned by root and has the permissions rwsr-xr-x. The setuid bit and owner being root means that regardless of the username of the person who runs it, the process will start as if it was root who started it. However, after the process has started the permissions are effectively downgraded to be those of the user who started it.
Therefore mpro worked because the process was effectively starting as root. The ABL connect statement failed because it was being run as the username of the person who ran mpro and that user did not have permissions to the specified database file(s).
This problem can sometimes occur after somebody has added additional extents to the database but has not changed the permissions,owner,group of the files to match the other database files.
FIX:
Change the database file permissions and/or the user permissions so that the users have the rights to connect to the database files.