APEX - OUD - VPD. Steffi Geiser-Metz & Mathias Weber & Björn Hötschl & Markus Geis CAMPUS INNENSTADT

Ähnliche Dokumente
Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen?

Geodaten als Analyse-Unterstützung

Application Express Mehrsprachigkeit & Mandantenfähigkeit. Copyright Apps Associates LLC. 1

Geschäftslogik in die Datenbank Umstellung eines Kernbanksystems

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

NoSQL mit Postgres 15. Juni 2015

Oracle und LDAP. Zugriff auf LDAP-Daten aus einer Oracle-DB. Martin Busik

RAS 12c vs. VPD als Security Layer für das DWH

Entwicklungsumgebung für die Laborübung

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

PostgreSQL High-Security

MySQL 101 Wie man einen MySQL-Server am besten absichert

Ein Blick unter die Motorhaube von Oracle APEX. Patrick Wolf, Sphinx IT Consulting DOAG Konferenz Nürnberg,

Transaktionen in der Praxis. Dr. Karsten Tolle

Christine Hansen, Fabrizio Fresco, Patrick Malcherek

Prozedurale Datenbank- Anwendungsprogrammierung

Oracle 10g Einführung

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Wie sicher sind Ihre Daten in der Datenbank? Vetter Sven. Technology Manager Security

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Chancen und Wachstumsfelder für PostgreSQL

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

DOAG München Die etwas anderen Oracle Performance-Tipps. Marco Patzwahl

Datenbankadministration WS 2013/14: Autorisierung, Nutzerverwaltung und Rechtevergabe

Jedem seine eigene Datenbank oder Oracle Virtual Private Database

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

DB2 Version 10 Kapitel IT-Sicherheit

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

PostgreSQL in großen Installationen

New Features Oracle Forms 11g Nichts Neu für Forms?

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Markus Feichtinger. Power Systems. Der Weg zu POWER! 2009 IBM Corporation

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Enterprise Web-SSO mit CAS und OpenSSO

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Oracle Weblogic Administration Grundlagen

- Architektur & Integration - Security in ADF Anwendungen (Essentials)

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

APEX 5.0 als wertvolle Ergänzung einer SharePoint-Umgebung. Alexej Schneider DOAG 2015

Java Database Connectivity-API (JDBC)

Datenbanken und Oracle, Teil 2

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!

Von der Datenbank zum LDAP-Server schnell und einfach mit Oracle Virtual Directory

Hilfe meine Oracle Datenbank spricht nicht mit meiner JSP

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

DECUSnet Konfiguration. IT-Symposium Alphaserver 2100 OpenVMS V TCPIP-Services

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Datenbank Rootkits. Alexander Kornbrust 01-April Red-Database-Security GmbH. Alexander Kornbrust, 01-Apr-2005 V1.07 1

Kuriositäten in der Oracle-Datenbank

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Installation MySQL Replikationsserver

Oracle BI Publisher Webservice API in Action

Weblogic Server: Administration für Umsteiger

Version 4.4. security.manager. Systemvoraussetzungen

Objekt-relationales Mapping und Performance-Tuning

PL/SQL Unit Tests mit SQL Developer

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: install.odt. Berger EDV Service Tulbeckstr.

Sentrigo Hedgehog. Eine kurze Vorstellung. Gerret Bachmann Senior Berater OPITZ CONSULTING Hamburg GmbH. Hamburg,

Dynamische Generierung von XML

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

Performance Tuning

Eine Einführung in MySQL

Hochverfügbarkeit - wie geht das?

Grid Control System Monitoring Plug-Ins Monitoring von Fremdsystemen mit Grid Control. Thomas Niewel Oracle Deutschland GmbH

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Übungsblatt 8- Lösungsvorschlag

Object Relational Mapping Layer

Softwareentwicklung mit Enterprise JAVA Beans

Was Cloud Control über Ihre installierte Software berichten kann. Martin Obst Oracle Deutschland Potsdam

Grundlagen der Informatik 2

HERZLICH WILLKOMMEN. Oracle Enterprise Manager Grid Control- Hochverfügbarkeit für den OMS. Markus Flechtner DOAG-Regionaltreffen 3.

Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli MySQL-Job-Automation

cs241: Datenbanken mit Übungen HS 2011

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

Oracle APEX 3.2. Peter Raganitsch. Einführung und neue Features

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Der IBM Websphere Portalserver

Lizenzierung des Oracle Application Servers und der Optionen

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Projekt Weblog :: Integration

Five Finger Death Punch. Oliver Lemm Competence Center Leiter APEX

Oracle Database 10g Die RAC Evolution

Views in SQL. 2 Anlegen und Verwenden von Views 2

Eclipse und EclipseLink

Cloud Control, Single Sign On in Active Directory Umfeld

Safexpert Oracle Datenbank Konnektor. Stand: IBF-Automatisierungs-und Sicherheitstechnik GmbH A-6682 Vils Bahnhofstraße 8

Entwicklung von Web-Anwendungen auf JAVA EE Basis

ORA.LogMiner. Nach Bestelleingang erhalten Sie eine Rechnung mit ausgewiesener Mehrwertsteuer und Informationen über die Zahlungsweise.

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

APEX URLs Suchmaschienen- und Benutzerfreundlich

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München

Oracle12c für Entwickler

Neues von Oracle Gut zu wissen...

Oracle Database Firewall

Transkript:

CAMPUS INNENSTADT APEX - OUD - VPD Steffi Geiser-Metz & Mathias Weber & Björn Hötschl & Markus Geis

APEX-OUD-VPD > INM AGENDA Institut für Notfallmedizin und Medizinmanagement - INM Oracle Unified Directory Verknüpfung APEX mit OUD VPD + Verknüpfung mit APEX Fazit 2

APEX-OUD-VPD > INM AGENDA Institut für Notfallmedizin und Medizinmanagement - INM Oracle Unified Directory Verknüpfung APEX mit OUD VPD + Verknüpfung mit APEX Fazit 3

APEX-OUD-VPD > INM KLINIKUM DER UNIVERSITÄT Campus Großhadern und Campus Innenstadt 2.200 Betten 500.000 Patienten ambulant, teilstationär und stationär 9.500 Beschäftigte: 1.600 Mediziner / 3.200 Pflegekräfte ca. 1 Mrd. Umsatz 5.955 Studenten-Wintersemester 2014/15 4

APEX-OUD-VPD > INM Interdisziplinäre Forschungseinrichtung Qualitätsmanagement in der Medizin, Notfallmedizin und im Rettungswesen derzeit ca. 40 Mitarbeiter DWH: Einsatz-, medizinischen- / GEO-Daten HSC www.inm-online.de 5

APEX-OUD-VPD > INM HW / SW / ORACLE-SW Betrieb eines 12c 3 Knoten Clusters (12.1.0.2 EE) / Oracle-Linux -> 3 DB s mit ca. 2TB / ca. 1.400 DB-Usern Netapp Metro Cluster / VMWARE Umgebung Shared Disk Spaces sind über NFS (dnfs) eingebunden (kein ASM) DB-Optionen: Partitioning Spatial (Routenberechnung und Geo-Analysen) WEBLOGIC 12 / TOMCAT ORACLE - mapviewer OUD (Oracle Unified Directory 11.1.2.3.0) APEX 5.1 / ORDS 3.0 ORACLE-HTTP / Apache 6

APEX-OUD-VPD > INM HISTORIE ALTE APPLIKATION alte JSP Applikation (TOMCAT) 1.200 DB-Usern Applikation hielt immer die Session VPD für die Einschränkung der User-Sichten Versuch mit JAVA + ADF 7

APEX-OUD-VPD > INM NEUE APPLIKATION APEX 5.1 ORDS 3.0 Oracle 12.1.0.2 VPD für die Einschränkung der User-Sichten Userverwaltung auf Basis LDAP (keine DB-USER) Nutzung des LDAP s für weitere APEX-Applikation und zusätzliche Applikationen wie z.b. owncloud + joomla 8

APEX-OUD-VPD > INM AGENDA Institut für Notfallmedizin und Medizinmanagement - INM Oracle Unified Directory Verknüpfung APEX mit OUD VPD + Verknüpfung mit APEX Fazit 9

APEX-OUD-VPD > INM OUD Oracle Unified Directory LDAP v. 3.0 compatible durchgängige Nutzung von Oracle-Produkten einfache Installation Lizenzierung über Anzahl User einfacher Betrieb und Sicherung Passwort-Verwaltung über SELF-Service-Portal Verwaltung über einfache OpenSource-Software (ODSM / oud_domain/bin/startweblogic.sh) 10

APEX-OUD-VPD > INM OUD 11

APEX-OUD-VPD > INM AGENDA Institut für Notfallmedizin und Medizinmanagement - INM Oracle Unified Directory Verknüpfung APEX mit OUD VPD + Verknüpfung mit APEX Fazit 12

APEX-OUD-VPD > INM OUD APEX ANBINDUNG APEX bietet mehrere Möglichkeiten um User zu authentifizieren Default: klassische APEX User (für die Entwicklung) LDAP (3-Tier Application / stateless) die Authentifizierung kann pro Applikation gewählt werden Einstellung unter Shared Components 13

APEX-OUD-VPD > INM OUD APEX ANBINDUNG Über CREATE eine neue Authentifizierung-Möglichkeit erstellen die gewünschte Authentifizierung-Möglichkeit wird mit CURRENT der Applikation zugeordnet 14

APEX-OUD-VPD > INM OUD APEX ANBINDUNG Parameter für die LDAP-Konfiguration Distinguished Name (DN) -> Beginn des LDAP-Verzeichnisses SEARCH-Filter: Applikation > LDAP - Gruppen zuordnen &(uid=%ldap_user%)(ismemberof=cn=apex_tcpr,ou=gruppen,dc=inm-online,dc=de) 15

APEX-OUD-VPD > INM OUD APEX ANBINDUNG 16

APEX-OUD-VPD > INM OUD APEX ANBINDUNG Aufbau einer ACL (Access Control List) für den LDAP Zugriff: BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => ldap_acl_file.xml', description => LDAP ACL', principal => 'APEX_050100', is_grant => true, privilege => 'connect'); DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => ldap_acl_file.xml', principal => 'APEX_050100', is_grant => true, privilege => 'resolve'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => ldap_acl_file.xml', host => 'xurca.inm-online.de' lower_port => 1234, upper_port => 1235 ); END; 17

APEX-OUD-VPD > INM OUD APEX ANBINDUNG Test LDAP-Connect 18

APEX-OUD-VPD > INM APEX ERGÄNZUNG AUTHORISIERUNG LDAP-Connect -> reine Authentifizierung APEX bietet auch die Möglichkeit einer Autorisierung 19

APEX-OUD-VPD > INM AGENDA Institut für Notfallmedizin und Medizinmanagement - INM Oracle Unified Directory Verknüpfung APEX mit OUD VPD + Verknüpfung mit APEX Fazit 20

APEX-OUD-VPD > INM WAS IST VPD (GRUNDGEDANKE)? Steuerung der Daten-Zugriffe bei Tabellen auf Zeilenebene Objektprivilegien -> select, insert, update, delete beziehen sich auf alle ROWS einer Table Daten können gruppen-/userbezogen dargestellt werden (mandantenfähig) 21

APEX-OUD-VPD > INM WAS IST VPD? ist ein Feature der Oracle Enterprise Edition Anfang: Trusted Oracle 7 / Label Security relativ altes Feature -> ab Version 8i Transparent für die Applikation Einsatz im Institut ab der Version 8.2.0.3 LABEL-Security -> nicht lizensfrei 22

APEX-OUD-VPD > INM WAS IST VPD? mehre Begriffe werden synonym verwendet: VIRTUAL PRIVATE DATABASE (VPD) ROW LEVEL SECURITY (RLS) FINE GRAINED ACCESS CONTROL VPD Wichtig: Context (z.b. 3-tier architecture / Connection-Pool) 23

APEX-OUD-VPD > INM WAS IST VPD? VPD hat immer eine TABLE zur BASIS VPD wird über eine Policy an eine Table gehängt als Basis für die Policy dient eine stored function mehrere Policys können pro Table genutzt werden VPD ergänzt die Statements auf eine Tabelle mit einer zusätzlichen -> WHERE-Bedingung um die Anzahl der zu selektierten Zeilen einzuschränken VPD ermöglicht ebenfalls Spalten aus einer Table für gewisse User zu maskieren bzw. nicht anzuzeigen 24

APEX-OUD-VPD > INM AUFBAU EINER VPD-UMGEBUNG CONTEXT um aus der Applikation Werte in die Datenbank zu übertragen Ein Tabellenmodell, welches als Basis für den Aufbau dient (Planung) Table: Userverwaltung (User + Rechte / Was darf wer sehen) Function, welche die Rechte für die User zusammenstellt und einen Rückgabe-String für die Nutzung von VPD aufbaut Policy, welche über die Function mit einem Rückgabewert versorgt wird, um die Einschränkungen durchzuführen 25

APEX-OUD-VPD > INM AUFBAU EINER VPD-UMGEBUNG POLICY Aufbau mit CONTEXT / LOGIN PACKAGE CREATE OR REPLACE CONTEXT RDB_CONTEXT USING RDB_LOGIN_PACKAGE; CREATE OR REPLACE package rdb_login_package is procedure set_context(p_userid in varchar2); end rdb_login_package; CREATE OR REPLACE package body rdb_login_package Is procedure set_context(p_userid in varchar2) is v_rdb wasserw_verwaltung.userverwaltung.id_rdb%type := 1; begin for cl in (select id_rdb from wasserw_verwaltung.userverwaltung where upper(user_name) = upper(p_userid)) loop v_rdb := cl.id_rdb; end loop; dbms_session.set_context('rdb_context','id_rdb', v_rdb); end set_context; end rdb_login_package; 26 24.10.2014

APEX-OUD-VPD > INM AUFBAU EINER VPD-UMGEBUNG POLICY Aufbau mit CONTEXT / Function CREATE OR REPLACE function WASSERW.f_rdb_policy(p_schema varchar2, p_object varchar2) return varchar2 is v_sql varchar2(32767); begin if sys_context('rdb_context','id_rdb') = 0 then null; elsif sys_context('rdb_context','id_rdb')!= 0 then v_sql := ' ID_RDB = ( ' sys_context('rdb_context','id_rdb') ')'; end if; return v_sql; end; / 27 24.10.2014

APEX-OUD-VPD > INM AUFBAU EINER VPD-UMGEBUNG POLICY anlegen BEGIN SYS.DBMS_RLS.ADD_POLICY (,object_name => 'TAB1',policy_name => 'ZUGRIFFSKONTROLLE_TAB1',policy_function => 'F_ZUGRIFF_RDB_XXX',statement_types => 'SELECT,INSERT,UPDATE,DELETE',policy_type => dbms_rls.dynamic,long_predicate => FALSE,update_check => TRUE,static_policy => FALSE,enable => TRUE ); END; BEGIN SYS.DBMS_RLS.DROP_POLICY ( object_schema => Null,object_name => 'TAB1',policy_name => 'ZUGRIFFSKONTROLLE_TAB1'); END; 28

APEX-OUD-VPD > INM AUFBAU EINER VPD-UMGEBUNG POLICY Aufbau mit CONTEXT / 3-Tier Application / APEX Shared Komponents -> Security Attributes -> Security / Database Session http://www.oracle.com/webfolder/technetwork/de/community/apex/tipps/virtual-private-database/index.html 29 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 30 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 31 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 32 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 33 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 34 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 35 24.11.2017

APEX-OUD-VPD > INM APPLIKATION 36 24.11.2017

APEX-OUD-VPD > INM AGENDA Institut für Notfallmedizin und Medizinmanagement - INM Oracle Unified Directory Verknüpfung APEX mit OUD VPD + Verknüpfung mit APEX Fazit 37

APEX-OUD-VPD > INM FAZIT APEX -> Einarbeitung; schnelle Entwicklung von Prototypen; große, agile Community, DB-nah; komplexe Applikationen möglich die Verbindung OUD / APEX / VPD stabil und einfach VPD ist einfach einzusetzten (trivial) VPD bietet viele Möglichkeiten die Datenbestände vor neugierigen Blicken zu schützen VPD ist für die Applikation völlig transparent Berechtigungskonzepte können über VPD ohne Applikationsänderungen modifiziert werden (flexibel) einziger VPD-Nachteil -> Enterprise Edition weniger GUT: Oracle-HTTP / WEBLOGIC 38 24.10.2014

VIELEN DANK FÜR IHRE AUFMERKSAMKEIT! M. Weber / M. Geis Klinikum der Universität München Institut für Notfallmedizin und Medizinmanagement Phone: 089 / 4400-57101 E-Mail: mathias.weber@med.uni-muenchen.de markus.geis@med.uni-muenchen.de Internet: www.inm-online.de 39 16.03.2016

40 24.11.2017