Lizenzverstößen richtig vorbeugen

By | 4. November 2016

… Damit das Lizenz-Audit kein Albtraum wird

In diesem Artikel möchte ich auf die Risiken von Lizenzverstößen durch die Verwendung von nichtlizenzierten Funktionen und Optionen der Oracle Datenbank eingehen, und aufzeigen, wie der DBA diese Risiken vorbeugend minimieren kann. Dazu werde ich die Notwendigkeit einer Überwachung der Datenbanknutzung erläutern und ein Beispiel anführen, wie man dies implementieren kann.

Oracle License

Oracle Datenbanklizenzierung

Für den Betrieb einer Oracle Datenbank in der Standard- und Enterprise Edition, muss bekanntermaßen eine Lizenz bei Oracle erworben werden. Nicht nur die Datenbank als solche, sondern auch die Nutzung ausgewählter Features der Oracle Datenbank, unterliegen einer Lizenzierungspflicht. Bei Oracle sind die meisten lizenzpflichtigen Features der Datenbank problemlos installierbar oder sogar bereits nach einer Standardinstallation implizit aktiviert. Bei Oracle Produkten ist kein gesonderter Lizenzschlüssel erforderlich, den man nach dem Erwerb einer Lizenz erhält und der die gewünschten Funktionalitäten freischaltet.

Welche lizenzpflichtigen Funktionen und Optionen genau in der Datenbank enthalten sind, kann man folgendem Oracle Lizenzdokument entnehmen:

Database Licensing Information User Manual:
http://docs.oracle.com/database/121/DBLIC/toc.htm

Vertragliche Verpflichtung und Risiko

Mit dem Erwerb einer Datenbanklizenz verpflichtet sich der Käufer über den Endbenutzer-Lizenzvertrag (EULA), nur lizenzierte Funktionen zu nutzen. Für die Einhaltung der Verpflichtung ist der Kunde verantwortlich. Dies bedeutet, dass der Kunde dafür Sorge tragen muss, dass keine lizenzpflichtigen Funktionen beabsichtigt oder unbeabsichtigt genutzt werden. In einigen Fällen kann er dies tun, indem er die Nutzung technisch einschränkt. Abhängig von dem Feature, kann man dies z.B. erreichen, indem man eine Option erst gar nicht mitinstalliert, Funktionen durch Parameter deaktiviert oder die Verwendung der Management Packs über die Admin GUI des Enterprise Manager ausschaltet. Dazu bedarf es jedoch einen erfahrenen DBA, der das entsprechende technische Know How hat und über Kenntnisse der Lizenzbestimmungen verfügt. Es gibt aber auch Funktionen, bei denen keine technische Nutzungseinschränkung möglich ist. Dies ist z.B. der Fall bei der Nutzung der Compression Funktion beim Export-Tool Data Pump, bei deren Verwendung die lizenzpflichtige Advanced Compression Option genutzt wird. Hier muss der Kunde die Nutzung durch andere Maßnahmen unterbinden. Er kann z.B. alle Administratoren und Entwickler darauf hinweisen, welche Funktionalitäten genutzt werden dürfen und welche nicht. In beiden Fällen ist ein relativ hoher Aufwand für den Kunden notwendig, um die Einhaltung der Lizenzbedingungen zu gewährleisten – ein Lizenzverstoß ist somit fast vorprogrammiert. Daher überrascht in der Praxis häufig nicht, dass unbeabsichtigt, nicht lizenzierte Optionen und Funktionen genutzt werden. Sei es, weil bei der Installation nicht aufgepasst wurde, die Entwickler mal ein Feature testen wollten oder das Wissen über die lizenzpflichtigen Funktionen fehlte. Es ist zugegebenermaßen nicht immer einfach und transparent, welche Funktion, welcher Option oder welchem Pack zuzuordnen ist. Die Erfahrung zeigt, dass selbst die einmalige und unbeabsichtigte Nutzung, beispielweise aufgrund vonUnkenntnis, schnell teuer werden kann!

Nutzungs-Protokollierung

Innerhalb der Oracle Datenbank wird die Verwendung der vielfältigen Funktionen und Optionen fortlaufend protokolliert. Z.B. werden die Nutzungen einer ganzen Reihe von lizenzpflichtigen und nichtlizenzpflichtigen Funktionen unter anderem in der View DBA_FEATURE_USAGE_STATISTICS erfasst. Darüber hinaus gibt es noch weitere interne Tabellen, in denen die Nutzung bestimmter Features festgehalten wird, und die ebenso von Oracle bei einem Lizenz-Audit ausgelesen werden.

Lizenz-Audit

Mit dem Erwerb einer Oracle Datenbanklizenz stimmt der Kunde zu, dass Oracle ein Lizenz-Audit bei ihm durchführen darf, um die tatsächliche Nutzung mit dem Lizenzbestand abzugleichen. Davon macht Oracle in den letzten Jahren vermehrt Gebrauch. Dabei werden üblicherweise die Datenbanken und Server vermessen und es wird ein Ergebnisbericht erstellt. Die bei einem Lizenz-Audit durch Oracle LMShäufig festgestellten Verwendungen der nichtlizenzierten Funktionen und Optionen, ziehen in der Regel finanzielle Nachforderungen nach sich, die unangenehm für den Kunden sind, nach sich. Insbesondere bei der teureren Enterprise Edition, können dies, bedingt durch die größere Anzahl von möglichen Lizenzverstößen, schnell Summen im 6-stelligen Bereich sein.

Überwachung der Nutzung von Funktionen

Der DBA ist in den meisten Organisationen für die Sicherstellung einer lizenzkonformen Nutzung der Datenbank mitverantwortlich. Dazu ist es zweckmäßig, dass der DBA Kenntnis über die in dem Unternehmen vorhandenen Oracle Lizenzen hat und mit den Oracle Lizenzbedingungen vertraut ist. Um bei möglichen Lizenz-Audits durch Oracle LMS keine bösen Überraschungen zu erleben und eine lizenzkonforme Nutzung sicherzustellen, empfehle ich, die tatsächliche Nutzung in regelmäßigen Abständen proaktiv zu überwachen. Die Überwachung kann man über eigene oder von Oracle bereitgestellte Scripte einrichten oder man verwendet eine der am Markt existierenden Third-Party Lizenzvermessungsprogramme. Egal welches Mittel man wählt, wichtig ist, dass der DBA mitbekommt, wenn nichtlizenzierte Features der Datenbank genutzt werden.

Was tun bei der Nutzung von nicht lizenzierten Features?

Werden Nutzungen nicht lizenzierter Funktionen und Optionen erkannt, so kann man zur Schadensminimierung wie folgt vorgehen. Wenn die Nutzung beabsichtigt war und das Feature gewünscht ist oder benötigt wird, dann ist es ratsam sich mit dem Oracle Vertrieb in Verbindung setzen, um hier die entsprechenden Lizenzen zu erwerben. Möglicherweis muss man hier auch den vergangenen Nutzungszeitraum lizenzieren. Sollte eine versehentliche Nutzung stattgefunden haben, weil z.B. unbeabsichtigt ein Feature ausprobiert worden ist, so sollte man sofort Oracle LMS kontaktieren, um die weitere Vorgehensweise zu besprechen. In jedem Fall ist es besser, sich selbst an Oracle LMS zu wenden und den vermeintlichen Verstoß zu melden, als wenn Oracle LMS dies bei einem späteren Lizenz-Audit feststellt. Eine vergangene, versehentliche Nutzung im Nachhinein gegenüber Oracle LMS zu erklären, ist immer schwierig.

Scriptbasierte Überprüfung

Wie bereits im oberen Abschnitt erwähnt, ist die regelmäßige Abfrage der View DBA_FEATURE_USAGE_STATISTICS grundsätzlich eine gute Basis, um die Nutzung lizenzpflichtiger Features zu erkennen. Die Abfrage aller Daten der View DBA_FEATURE_USAGE_STATISTICS ist allerdings wenig zielführend. Zum einen sind in der View auch Features enthalten, die keine Lizenzen erfordern, zum anderen muss man genau wissen, welche Funktion welchem lizenzpflichtigen Feature oder welcher Option zuzuordnen ist.

Um dem DBA die Erkennung und Zuordnung einfacher zu machen, hat Oracle im Oracle Support Forum im letzten Jahr ein Script zum Download bereitgestellt. Das Script options_packs_usage_statistics.sql fragt die View DBA_FEATURE_USAGE_STATISTICS ab und generiert eine Ausgabe, aus der hervorgeht, welche lizenzpflichtigen Features wann und wie oft genutzt wurden.

Das Script kann bei Oracle auf folgender Seite heruntergeladen werden.

  • MOS Note 1317265.1: Database Options/Management pack Usage reporting for Oracle Database 11gR2 and 12c

Erwähnenswert ist noch, dass es, in Abhängigkeit vom Datenbankrelease, zu einigen Fehlmeldungen durch Bugs in der View DBA_FEATURE_USAGE_STATISTICS kommen kann. So kann es z.B. passieren, dass die Nutzung der Option Advanced Compression durch eine systematische Verwendung von Heap Compression angezeigt wird. Bei der eigenen Auswertung der Daten aus der View, sollte man daher die folgenden MOS Notes berücksichtigen.

  • MOS Note 843077.1:   DBA_FEATURE_USAGE_STATISTICS View Is Displaying A Wrong Version Of Oracle Advanced Security Options
  • MOS Note 2015816.1: DBA_FEATURE_USAGE_STATISTICS Output is Different for 12.1.0.1 and 12.1.0.2
  • MOS Note 2049848.1: DBA_FEATURE_USAGE_STATISTICS Wrongly Reports „Advanced Compression“ Usage Via „Heap Compression“
  • MOS Note 1381022.1: DBA_FEATURE_USAGE_STATISTICS reports Oracle Spatial is used
  • MOS Note 1309070.1: Place Holder For Feature Usage Tracking Bugs

Obwohl das von Oracle bereitgestellte Script options_packs_usage_statistics.sql schon sehr nützlich ist, bietet es leider keine umfassenden Informationen, da es ausschließlich die Daten aus der View DBA_FEATURE_USAGE_STATISTICS verarbeitet. Das Setzen des Datenbankparameters DDL_LOGGING auf TRUE, welcher die Lizenzierung des Database Lifecycle Management Pack erfordert, wird zum Besispiel von dem Script nicht berücksichtigt. Außerdem fände ich es prima, wenn das Script nicht nur die Nutzung von lizenpflichtigen Features anzeigt, sondern auch die vorhandenen Lizenzen berücksichtigt.

Daher empfehle ich, das Oracle Script entsprechend zu erweitern oder ein eigenes Script zu nutzen. Alternativ zu dem von Oracle bereitgestellten Script, kann auch ein von mir entwickeltes Script genutzt werden, welches umfangreichere Lizenzprüfungen vornimmt. Mein Script check_database_license_violation.sql wurde in meinem Blog-Beitrag „Scriptbasierter License Violation Check“ vorgestellt und kann dann dort heruntergeladen werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert