Federated Datasources
Note that you will also need to hand in a documentation for this assignment.
Assignment
Part 1
- connect to dbbw004 and run the scripts from Olat as user db2inst1
- add this command to the
CONFIG_DATABASE.sql
file
update db cfg for dbbw004 using LOGSECOND 200;
- run the script
HRACCESS_Create.sql
. - run the script
HRACCESS_LOAD_DATA.sql
. This will take a while. - run the script
HRACCESS_COUNT_ROWS.sql
This verifies if the Data was loaded. - create a linux user called
m141fed
. To do so, run the following command as root:
useradd -p $(openssl passwd -1 m141fed) -s /bin/bash m141fed -d /home/m141fed
Then proceed to grant all the priviliges the user needs and save them in the script HRACCESS_GRANT_m141fed.sql
HRACCESS_GRANT_m141fed.sql
GRANT CONNECT ON DATABASE TO USER m141fed;
GRANT USAGE ON WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER m141fed;
GRANT EXECUTE ON PACKAGE NULLID.SQLC2P31 TO USER m141fed;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.DEPARTMENTS TO USER m141fed;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.DEPT_EMP TO USER m141fed;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.DEPT_MANAGER TO USER m141fed;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.EMPLOYEES TO USER m141fed;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.SALARIES TO USER m141fed;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.TITLES TO USER m141fed;
Part 2
- configure federated datasources as documented in the db2 Knowledge Center
All the commands should be saved into the scriptHRREMOTE_Create.sql
. You should also create a scriptHRREMOTE_Drop.sql
where you remove all the data.
For this part you must be connected to DBBW003!
First run this: UPDATE DBM CFG USING FEDERATED YES;
and proceed to restart your DBM (it's probably easier to simply restart the VM)
HRREMOTE_Create.sql
CATALOG TCPIP NODE db2_node REMOTE system42 SERVER db2tcp42;
-- Wrapper registrieren
CREATE WRAPPER DRDA;
-- Server Definitionen registrieren
CREATE SERVER BBW TYPE DB2/LUW VERSION 11 WRAPPER DRDA AUTHORIZATION "db2inst1" PASSWORD "db2inst1" OPTIONS (DBNAME 'DBBW004') ;
-- User Mapping erstellen, um dem Benutzer den Zugriff auf den remote server zu geben
CREATE USER MAPPING FOR DB2INST1 SERVER BBW OPTIONS (REMOTE_AUTHID 'db2inst1', REMOTE_PASSWORD 'db2inst1');
-- Nicknames aus DBBW004 hinzufügen
CREATE NICKNAME HRREMOTE.DEPARTMENTS FOR BBW.HRACCESS.DEPARTMENTS;
CREATE NICKNAME HRREMOTE.DEPT_MANAGER FOR BBW.HRACCESS.DEPT_MANAGER;
CREATE NICKNAME HRREMOTE.EMPLOYEES FOR BBW.HRACCESS.EMPLOYEES;
CREATE NICKNAME HRREMOTE.DEPT_EMP FOR BBW.HRACCESS.DEPT_EMP;
CREATE NICKNAME HRREMOTE.TITLES FOR BBW.HRACCESS.TITLES;
CREATE NICKNAME HRREMOTE.SALARIES FOR BBW.HRACCESS.SALARIES;
HRREMOTE_Drop.sql
-- Nicknames löschen
DROP NICKNAME HRREMOTE.DEPARTMENTS;
DROP NICKNAME HRREMOTE.DEPT_MANAGER;
DROP NICKNAME HRREMOTE.EMPLOYEES;
DROP NICKNAME HRREMOTE.DEPT_EMP;
DROP NICKNAME HRREMOTE.TITLES;
DROP NICKNAME HRREMOTE.SALARIES;
-- User Mapping löschen
DROP USER MAPPING FOR DB2INST1 SERVER BBW;
-- Server-Definition löschen
DROP SERVER BBW;
-- Wrapper löschen
DROP WRAPPER DRDA;
-- Node entfernen
UNCATALOG NODE db2_node;
After running the script HRREMOTE_Create.sql
, run HRREMOTE_CHECK_ACCESS.sql
.
HRACCESS_GRANT_bbwuser.sql
- Create a script named
HRACCESS_GRANT_bbwuser.sql
- Connect to dbbw004
- Add the following content to the script and run the script.
GRANT CONNECT ON DATABASE TO USER bbwuser;
GRANT USAGE ON WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER bbwuser;
GRANT EXECUTE ON PACKAGE NULLID.SQLC2P31 TO USER bbwuser;
GRANT EXECUTE ON PACKAGE NULLID.SYSSN200 TO USER bbwuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.DEPARTMENTS TO USER bbwuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.DEPT_EMP TO USER bbwuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.DEPT_MANAGER TO USER bbwuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.EMPLOYEES TO USER bbwuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.SALARIES TO USER bbwuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON HRACCESS.TITLES TO USER bbwuser;
If this was successful, you can connect to dbbw003 as bbwuser and run the script HRREMOTE_CHECK_ACCESS.sql
.
If this was not successful, run the following command as db2inst1
in dbbw003.
CREATE USER MAPPING FOR BBWUSER SERVER BBW OPTIONS (REMOTE_AUTHID 'bbwuser', REMOTE_PASSWORD 'bbwuser');