MainframeSupports
tip uge 51/2000:

En af de mere specielle ting i DB2 er det såkaldte CURRENT SQLID. Her i denne juletid taler vi meget om "hvad du ønsker, skal du få" og det er faktisk CURRENT SQLID, der bestemmer, hvad du har lov til. Lav en SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1 for at finde ud af, hvad CURRENT SQLID er. I et program skriver du EXEC SQL SET :hostvar = CURRENT SQLID for at finde ud af det.

Når du nu har fundet ud af, hvad dit CURRENT SQLID er, så kan du slå op i de DB2-katalog tabeller, der ender på AUTH og finde ud af, hvad du må. Du skal søge efter rækkerne, hvor kolonnen GRANTEE er lig det fundne CURRENT SQLID.

I DB2 må den eller de GRANTEE's, der har den såkaldte SYSADM autorisation, alt. De kan som de eneste skifte CURRENT SQLID med SET CURRENT SQLID = et-eller-andet, med mindre der er blevet manipuleret med to exits af DB2 systemprogrammørerne. Disse to exits er signon exit'et (DSN3@SGN)og connection exit'et (DSN3@ATH). På danske installationer er navnene hhv. DSN3øSGN og DSN3øATH. IBM har lavet en udgave af hvert af disse to exits, som nogle installationer bruger. Disse to exits gør, at de fleste usere kan skifte deres CURRENT SQLID, men ikke til hvad som helst (det kan SYSADM-usere).

Det "sjove" ved CURRENT SQLID er, at man ikke på nogen måde i DB2 kan se, hvad man kan skifte CURRENT SQLID til. Det er alene de to exits, der bestemmer. Og på de tidspunkter, hvor de to exists har kontrollen, så er der ikke etableret en såkaldt tråd, som er nødvendig for at kunne lave SQL-kald. Man kan altså ikke lade de to exits slå op i en DB2-tabel og finde ud af, om man nu må skifte til det SQLID, der angives. I stedet benytter de to exits RACF, med mindre den installation, som du benytter, har lavet sine egne exits.

Hvis man gerne vil vide, hvilke CURRENT SQLID's, man kan skifte til, hvis man ikke lige er SYSADM, så er man altså nødt til at kende funktionaliteten af de to nævnte exits på den installation, man benytter. Ganske simpelt, ikke. Jeg synes DB2 stinker på det her punkt og det har DB2 gjort i mange år. Fortvivl ikke, thi du ved sikkert, hvilke CURRENT SQLID's du kan skifte til på din installation, eller også kan du spørge nogen. Faktisk er det her med CURRENT SQLID noget som databaseadministatorerne nogle gange ikke ved ret meget om, fordi de er SYSADM og derfor ikke har problemer med at skifte CURRENT SQLID. Og den systemprogrammør, som i sin tid lavede de to exits, er holdt op eller overflyttet til en helt anden funktion. Du kan læse mere om de to exits i DB2-manualen administration guide.

Sidste uges tip        Tip oversigten