home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Neueste VersionenFixList
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
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC66032 Status: Geschlossen

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

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
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-Zusammenfassung:
**************************************************************** 
* 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:
verfügbare FixPacks:
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

Lösung
First Fixed in V9.7 Fix Pack 2
Workaround
keiner bekannt / siehe Local-Fix
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
02.02.2010
29.07.2010
29.07.2010
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.FP2
Problem behoben lt. FixList in der Version
9.7.0.2 FixList