Oktober 2018
September 2018
Mai 2018
Select distinct ... where CursorParam+2 = ...
for irec in c1( Param +2)...
Januar - April 2018
Dezember 2017
November 2017
Weiterführung der Entwicklung des Transparent JDBC Gateway für Oracle ( TJG-O ) an In-Memory Datenbanken wie
z.B. SAP HANA.
Oktober 2017
Freue mich auf die nächsten Herausforderungen. Bis jetzt konnte ich bei jedem Oracle Performance Problem eine deutliche Verbesserung erreichen.Hoffe, das ich zeitnah erkenne, wenn es mir nicht möglich ist.
September 2016
Umsetzung des ersten Webcast für das Transparent JDBC Gateway für Oracle ( TJG-O ).
Knobelaufgabe:
Ein komplettes SQL Select Statement beim ersten Aufruf über das Gateway zu schicken ist nicht das Problem,
die dynamischen Rückgabewerte auch nicht. Wie man jedoch die Rückgabewerte einer View als Wrapper auf eine dyn. Tablefunction bei der ersten Abfrage ändert, ist die härteste Denksportaufgabe im Bereich Oracle Datenbanken,
die mir je untergekommen ist.
Die Profi Lösung sollte ohne SQL Translation Framework arbeiten damit 11g noch mit im Boot ist.
Wenn jemand eine Idee hat, nur zu und bitte melden.
Anyway ...
Eine 'arme Leute' Lösung könnte für 12c mit dem SQL Translation Framework erfolgen.
Hier besteht die Denksportaufgabe darin, die Auswertung von sql_text auf true zu bekommen wenn lediglich
ein bestimmter Tabellenname im Select Statement enthalten ist.
August 2016
Optimierung Query Mode des Transparent JDBC Gateway für Oracle ( TJG-O ).
Wording:
Fremddatenbank : Alles was mit JDBC ereichbar ist, inkl. der eigenen Oracle Instanz, wenn es so sein soll.
Remotetabelle: Die Tabelle, die per JDBC abgefragt wird.
Im Beispiel liegt die Remotetabelle "M1_BIGTABLE" in der Fremddatenbank MariaDB/db_name.
Zur Orientierung dient der Connection Name 'M1' im Präfix.
Die Connection M1 wurde in der Oracle Session aufgebaut mit :
exec gw.get_conn( 'M1','jdbc:mysql://localhost:3306/db_name', 'username', 'password', 'conn_profile', 'ren=yes');
oder bei neuerlichem Connect
exec gw.re_conn( 'M1','password');
Mit 'ren_yes' werden alle Proxy Objekte, die für MariaDB und diese Datenbank,db_name, username, ... freigegeben wurden, mit dem Präfix 'M1_' umbenannt.
Die Lebensdauer der Connection ist im Default Connection Profile aus Sicherheitsgründen identisch mit der Oracle Session Lifetime. Der Parallelisierungsgrad beträgt im Default Connection Profile 1. Bis auf das Passwort
wird im Default Connect Profile die Connection ULRL unter dem Namen, z.B. 'M1' automatisch gespeichert.
Table Mode ( bisher und zukünftig ) :
Modus setzen.
exec gw.set_tbl_prop('M1_BIGTABLE', 'Mode=Table');
SQL Abfrage:
select count(*) cnt_id from m1_bigtable;
- Komplette Übertragung der Tabelle BIGTABLE an das Oracle Proxy Object 'BIGTABLE'.
- optional als Oracle Table oder In Memory via Snapshot mit oder ohne fast refresh - Ausführung der Count Funktion durch die Oracle SQL Engine auf dem Proxy Object und Ausgabe
bzw.
Query Mode ( bisher ) :
- View erstellen:
create or replace view q_cnt_bigtable_v as select count(*) as cnt_id from m1_bigtable_q;
- Abfrage auf View:
select * from q_cnt_bigtable_v;
Neben dem Proxy Objekt 'm1_bigtable' für den Table Mode gab es ein Proxy Objekt 'm1_bigtable_q' für den Query Mode.
Query Mode ( zukünftig ) :
Modus setzen.
exec gw.set_tbl_prop('M1_BIGTABLE', 'Mode=Query');
Beim ersten Aufruf wird die SQL Query registriert.
select count(*) cnt_id from m1_bigtable;
Query registered successfully !
select count(*) cnt_id from m1_bigtable; - > Result
- Übertragung und Ausführung der Count Funktion auf der Remote Tabelle bigtable z.B. in MariaDB
Übertragung des Ergebnisses ( im Beispiel ein Datensatz) an das Oracle Proxy Object und Ausgabe.
Es gibt fortan lediglich ein Proxy Objekt, welches sowohl im Query Mode als auch im Table Mode verwendet werden kann.
Die Parallelisierung z.B. bei der Abfrage wird über das Setzen von Werten einer Eigenschaft aktiviert.
exec gw.set_tbl_prop('M1_BIGTABLE', 'ParallelQuery=4');
Join's sind ebenso möglich, sofern alle Tabellen des Joins in der Fremddatenbank liegen!
Unabhängig davon kann jede Tabelle einer Fremdatenbank bzw. JDBC Quelle in Oracle vorgehalten werden.
Entweder im Speicher oder als Tabelle jeweils mit oder ohne Refresher.
________________________________________________________________
Neue Eigenentwickung :
Transparent Dataload Oracle > In Memory DB's
z.B. SAP Hana, MariaDB, usw.
Vollkommen transparent aus der Oracle DB z.B. via PL/SQL - SQL und asynchron
Mit Transformation auf z.B. Columnstore Formate sowie Parallelisierbar!
___________________________________________________________________
In Planung:
Oracle DB Proxy der zwischen Application und Oracle DB bzw. Oracle Dummy DB geschaltet wird.
Im einfachsten Fall wird die Connection 1:1 durchgereicht.
Vorteil : Keine Änderungen an der Application
Security Features:
- Application Filter auch für SQLPLUS / DBA's
- Alternative Daten für z.B. Tests von anderen DB's auch mit dem Transparent JDBC Gateway.
- SQL Translation - sicher und auditierbar.
- Datenmaskierungen
usw.
Weitergehende Features:
- Migrationen von Oracle DB's zu Whatever, ohne die Applications ändern zu müssen.
Juni 2016
Unified Auditing Oracle 12c in Practice Teil 4 (new 14.06.2016 )
März 2016
Unified Auditing Oracle 12c in Practice Teil 3 ( 09.03.2016 )
Gateway Port auf C++
Februar 2016
Gateway in Java und PL/SQL abgeschlossen. Vorführung und Verkauf auf Anfrage.
Januar 2016
Unified Auditing Oracle 12c Teil 2 (update 10.01.2016 )Update Tipps&Tricks : Unfied Auditing Oracle 12c
Dezember 2015
Diverse Parallel Pipelined Tablefunctions teils mit ODCI erstellt.
Die Wirkung geht deutlich über das hinaus was man dem alten Monolithen Oracle DB zutrauen würde.
Dies besonders, wenn die Connectivity Datenbankgrenzen überwindet.
November 2015
Update Tipps&Tricks : Unfied Auditing Oracle 12c ( update 26.11.2015 )
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Im Backlog stehen folgende Artikel zu Oracle Security 12c:
Wie kann man die Nutzung von Translate any SQL auditieren und den Original- und Ersatz- SQL protokollieren ?
Wie kann man die Nutzung von Inherit any Privileges auditieren samt Ausweisung der geerbten Privilegien?
Ob mir eine simple Lösung einfällt, welche Auditeinträge bei Mixed Mode 12c von sys.aud$ in das Unified Audit Trail überträgt, werden wir sehen. Eine View basierend auf einer Table Function welche sys.aud$ als Union an das Unified Audit Trail hängt sollte jedoch immer gehen.
Tipps&Tricks : Unfied Auditing Oracle 12c ( update 24.11.2015 )
August+Oktober 2015
Damit das JDBC Gateway auch für Massenabfragen genutzt werden kann, muss die Parallel Query Funktionalität von Oracle mit der Architektur des Gateways verheiratet werden. Dies gilt auch für Parallelized PipelinedTable Functions.
Damit lassen sich dann auch über Apache Hive Massendaten nach Oracle und zurück transportieren, sofern es genug Performance für den Java Anteil gibt.
July 2015
JDBC Gateway - ( Korrektur 25.08.2015 )Volldynamische Variante des JDBC Gateways erstellt.
select * from table ( gw.dyn_tbl ( 'MARIADB_CON_1', 'PRODUCTS' , 'S_GT_NF', 'DT_MAP_1', 'FULL' ) );Abfrage des erstellten Objects, sofern gewünscht.
select * from "PRODUCTS@MARIADB_CON_1";
--------------------------------------------------------------------------------------------------------------------------------------------------------
gw.dyn_tbl( Param_1,Param_2,Param_3,Param_4,Param_5,.. );
Param_1 : Connection -- im Beispiel hinterlegt und zur Erläuterung mit Herstellernamen
Param_2 : Table/View/Tablefunction, ..
Param_3 : Persistenzverhalten
C_VM - Call Volatile Memory - flüchtig
S_GT_NF - Session Global Temp Table ohne Fast Refresh
P_MW_FR - Permanent Fast Refresh
Param_4 : Datatype Mapping mt Lob,Geo,..
Param_5 : Data Mapping
Anonymisierung
Verwürfelung
Verschlüsselung
Sichtbarkeit - Full /Partial/ Null / Fakedata
Param_6 :
...
Param_nm optional
Juni 2015
Fast Key Generation for PGP in der Oracle Datenbank.Aktuell für z.B. OraPGP von DidiSoft
Eigene Implementierung folgt.
Entscheidend für den Einsatz der asymmetrischen Verschlüsselung sind passende
Konzepte für die logische Partitionierung und die Lebensdauer von Schlüsselpaaren bzw.
PwdPhrases.
Mai 2015
Neue Version Audittransport to SIEM für Unified Auditing.Redundanzen bei den Daten vermeiden.Sicherheit und Performance gegen Aufwand!
Cosima Jörgens
Termin : 27.11. 2013, 18:30 Raum D14/104, h_da (Fachhochschule DA, Informatikgebäude),
Schöfferstraße 8, Darmstadt.
http://www.it-stammtisch-darmstadt.de/vortraege/oracle-database-security.html
Der Vortrag versucht für relevante Sicherheitslücken praxinahe Hilfestellungen zu vermitteln.
.