BIND db2look Utility an ein DB2 z/OS Subsystem (Unix)
In diesem Beispiel wird von einem Unix/AIX das DB2LOOK Utility über Secondary AuthID an ein DB2 for z/OS Subsystem gebunden.
#!/bin/ksh
################################################################################
# 21.05.2013/GR - Adapted from BindDB2ConnectSecondary to bind DB2LOOK to DB2 z/OS
# 16.09.2015/GR - db2look.bnd, db2lkfun.bnd, db2lksp.bnd not needed for DB2 z/OS
################################################################################
clear
ID=`id`
USER=`whoami`
DATE=`date +%Y-%m-%d-%H.%M.%S`
YD=`date +%j`
SYSTEM=`uname -n`
cd /u/db2dba/ddl
tty=`tty`
logpath=$PWD
logfname=`basename $0 | awk -F. '{print $1}'`
logfname="$logpath/$logfname-$DATE.LOG"
echo "$0 - Binden der DB2LOOK Utility Packages an DB2 for z/OS Subsystem via 2nd AuthID"
echo "================================================================================="
echo "Current User ID .............: $ID"
echo "Current Date/Time ...........: $DATE"
echo "System ......................: $SYSTEM"
echo "Log File Name ...............: $logfname"
echo "Path ........................: $PWD"
echo "Bitte folgende Paramter eingeben:"
echo "---------------------------------"
echo "1) Name der Instance, mit der gearbeitet werden soll"
echo "2) Name der registrierten DB2 z/OS Datenbank"
echo "3) Name der z/OS User ID, mit der man sich connecten kann"
echo "4) Owner der Packages (RACF-Gruppe, Qualifier, Schema)"
echo "5) Grantee für die Ausführung der Packages"
#
echo "Los geht's ..."
echo "1) Name der Instance (z.B. db2inst1, db2test, db2prod, ...):"
read db2inst
echo "2) DB2 z/OS Datenbank (DB2T, DB2P, ...):"
read db2zosdb
echo "3) z/OS User ID (ADMINTST, ADMINPRD, ...):"
read db2zosusr
echo "4) Package Owner (TEST, PROD, ...):"
read db2zosown
echo "5) Grantee für die Ausführung der Packages (PUBLIC):"
read db2zostee
echo "... Binden beginnt mit Aufbau der Connection ..."
#
typeset -u db2zosdb
typeset -u db2zosusr
typeset -u db2zosown
typeset -u db2zostee
#
rm $logfname".BAK" 2>/dev/null
mv $logfname $logfname".BAK" 2>/dev/null
exec 1>>$logfname 2>&1
#
echo "$0 - Bind DB2 Connect Packages an DB2 for z/OS Subsystem via 2nd AuthID"
echo "================================================================================"
echo "Current User ID .............: $ID"
echo "Current Date/Time ...........: $DATE"
echo "System ......................: $SYSTEM"
echo "Log File Name ...............: $logfname"
echo "Path ........................: $PWD"
echo "1) Name der Instance ........: $db2inst"
. xmpSetInstance.sh $db2inst
echo "2) DB2 z/OS Datenbank .......: $db2zosdb"
echo "3) z/OS User ID .............: $db2zosusr"
echo "4) Package Owner ............: $db2zosown"
echo "5) Grantee für Packages .....: $db2zostee"
#
echo "Connection zur DB2 z/OS DB $db2zosdb mit User $db2zosusr wird hergestellt ..."
db2 connect to $db2zosdb user $db2zosusr
#
echo "Binden der DB2 Connect Packages an $db2zosdb für Owner $db2zosown ..."
#db2 "BIND $INSTHOME/sqllib/bnd/db2look.bnd ACTION REPLACE BLOCKING ALL SQLERROR CONTINUE OWNER $db2zosown"
#db2 "BIND $INSTHOME/sqllib/bnd/db2lkfun.bnd ACTION REPLACE BLOCKING ALL SQLERROR CONTINUE OWNER $db2zosown"
#db2 "BIND $INSTHOME/sqllib/bnd/db2lksp.bnd ACTION REPLACE BLOCKING ALL SQLERROR CONTINUE OWNER $db2zosown"
db2 "BIND $INSTHOME/sqllib/bnd/db2lk390.bnd ACTION REPLACE BLOCKING ALL SQLERROR CONTINUE OWNER $db2zosown"
#
echo "Wechsel zur Secondary AUTHID $db2zosown ..."
db2 "SET CURRENT SQLID = '$db2zosown'"
echo "Erteilung EXECUTE Autorisierung für Grantee $db2zostee ..."
db2 "GRANT EXECUTE ON PACKAGE NULLID.* TO $db2zostee"
echo "Abbauf der Connection ..."
db2 CONNECT RESET
echo "Terminate Line Command Back-End-Prozess ..."
db2 TERMINATE
#
test $tty && exec 1>$tty 2>&1
#
date
echo "$0 beendet, Log unter $logfname"
Bei einem BIND an DB2 for z/OS sind die anderen .bnd-Files unerheblich – sie werden nur für DB2 Unix oder DB2 Windows Umgebungen benötigt. Lediglich die db2lk390.bnd-Datei wird benötigt.


Comments
Comments are closed.