home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC66032 Status: Closed

AN INCORRECT AUTHORIZATION ID WAS REPORTED IN SQLCODE -20402 WITH LBAC
SECURITY ENABLED.

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
In a LBAC security setup when a user does not have the proper 
authority to the operations SQL20402n error is reported with the 
previous user id rather than the actual user id. 
 
Here is a test case. 
Setup: 
user instuser: instance owner 
user appuser: simple user 
user secadm: setup as secadm 
 
CREATE SECURITY LABEL COMPONENT TESTSECLEVEL ARRAY ['TOP 
SECRET', 'SECRET', 'CONFIDENTIAL', 'RESTRICTED', 'PUBLIC']; 
CREATE SECURITY POLICY SECPOLICYTEST COMPONENTS TESTSECLEVEL 
WITH DB2LBACRULES; 
CREATE SECURITY LABEL SECPOLICYTEST.PUBLIC COMPONENT 
TESTSECLEVEL 'PUBLIC'; 
GRANT SECURITY LABEL SECPOLICYTEST.PUBLIC TO USER appuser; 
CREATE TABLE TEST.TMP_TABLE (COL1 varchar(20) ,COL2 
varchar(20),COL_ROWSECLABEL DB2SECURITYLABEL)SECURITY POLICY 
SECPOLICYTEST; 
GRANT ALL ON TEST.TMP_TABLE TO PUBLIC; 
 
As appuser, insert into temp table worked: 
appuser @ chiana : /home/appuser 
$ db2 "INSERT INTO TEST.TMP_TABLE (col1, col2) VALUES ('33', 
'33')" 
DB20000I  The SQL command completed successfully. 
 
 
As instance insert a row and receive the error about not having 
authorization 
 
instuser @ chiana : /home/instuser 
$ db2 "INSERT INTO TEST.TMP_TABLE (col1, col2) VALUES ('33', 
'33')" 
DB21034E  The command was processed as an SQL statement because 
it was not a 
valid Command Line Processor command.  During SQL processing it 
returned: 
SQL20402N Authorization ID "INSTUSER" does not have the LBAC 
credentials to 
perform the "INSERT" operation on table "TEST.TMP_TABLE". 
SQLSTATE=42519 
 
 
Then when tried as SECADM, but instead of it reporting SECADM 
not having auth,  gets the instance owner again: 
secadm @ chiana : /home/secadm 
$ db2 connect to P16506 
 
   Database Connection Information 
 
 Database server        = DB2/LINUX 9.1.5 
 SQL authorization ID   = SECADM 
 Local database alias   = P16506 
 
 
secadm @ chiana : /home/secadm 
$ db2 "INSERT INTO TEST.TMP_TABLE (col1, col2) VALUES ('33', 
'33')" 
DB21034E  The command was processed as an SQL statement because 
it was not a 
valid Command Line Processor command.  During SQL processing it 
returned: 
SQL20402N Authorization ID "INSTUSER" does not have the LBAC 
credentials to 
perform the "INSERT" operation on table "TEST.TMP_TABLE". 
SQLSTATE=42519
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Users on V9.7 GA and FP1                                     * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* In a LBAC security setup when a user does not have           * 
* theproperauthority to the operations SQL20402n error is      * 
* reported withtheprevious user id rather than the actual user * 
* id.Here is a test case.Setup:user instuser: instance         * 
* owneruser appuser: simple useruser secadm: setup as          * 
* secadmCREATE SECURITY LABEL COMPONENT TESTSECLEVEL ARRAY     * 
* ['TOPSECRET', 'SECRET', 'CONFIDENTIAL', 'RESTRICTED',        * 
* 'PUBLIC'];CREATE SECURITY POLICY SECPOLICYTEST COMPONENTS    * 
* TESTSECLEVELWITH DB2LBACRULES;CREATE SECURITY LABEL          * 
* SECPOLICYTEST.PUBLIC COMPONENTTESTSECLEVEL 'PUBLIC';GRANT    * 
* SECURITY LABEL SECPOLICYTEST.PUBLIC TO USER appuser;CREATE   * 
* TABLE TEST.TMP_TABLE (COL1 varchar(20)                       * 
* ,COL2varchar(20),COL_ROWSECLABEL DB2SECURITYLABEL)SECURITY   * 
* POLICYSECPOLICYTEST;GRANT ALL ON TEST.TMP_TABLE TO PUBLIC;As * 
* appuser, insert into temp table worked:appuser @ chiana :    * 
* /home/appuser$ db2 "INSERT INTO TEST.TMP_TABLE (col1, col2)  * 
* VALUES ('33','33')"DB20000I  The SQL command completed       * 
* successfully.As instance insert a row and receive the error  * 
* about nothavingauthorizationinstuser @ chiana :              * 
* /home/instuser$ db2 "INSERT INTO TEST.TMP_TABLE (col1, col2) * 
* VALUES ('33','33')"DB21034E  The command was processed as an * 
* SQL statementbecauseit was not avalid Command Line Processor * 
* command.  During SQL processingitreturned:SQL20402N          * 
* Authorization ID "INSTUSER" does not have the                * 
* LBACcredentials toperform the "INSERT" operation on table    * 
* "TEST.TMP_TABLE".SQLSTATE=42519Then when tried as SECADM,    * 
* but instead of it reportingSECADMnot having auth,  gets the  * 
* instance owner again:secadm @ chiana : /home/secadm$ db2     * 
* connect to P16506Database Connection InformationDatabase     * 
* server        = DB2/LINUX 9.1.5SQL authorization ID  =       * 
* SECADMLocal database alias  = P16506secadm @ chiana :        * 
* /home/secadm$ db2 "INSERT INTO TEST.TMP_TABLE (col1, col2)   * 
* VALUES ('33','33')"DB21034E  The command was processed as an * 
* SQL statementbecauseit was not avalid Command Line Processor * 
* command.  During SQL processingitreturned:SQL20402N          * 
* Authorization ID "INSTUSER" does not have the                * 
* LBACcredentials toperform the "INSERT" operation on table    * 
* "TEST.TMP_TABLE".SQLSTATE=42519                              * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to FixPack 2                                         * 
****************************************************************
Local Fix:
available fix packs:
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
First Fixed in V9.7 Fix Pack 2
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
02.02.2010
29.07.2010
29.07.2010
Problem solved at the following versions (IBM BugInfos)
9.7.FP2
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.2 FixList