Oracle hat einen neuen Zweig der MySQL-Datenbank-Management-Systeme (DBMS) 9.2.0 erstellt. Die Builds des MySQL Community Servers 9.2.0 sind für alle wichtigen Linux-Distributionen, FreeBSD, macOS und Windows verfügbar. Im Rahmen des 2023 eingeführten neuen Modells zur Erstellung von Releases wird MySQL 9.2 den „Innovation“-Zweigen zugeordnet, zu denen auch die nächste bedeutende Version MySQL 9.3 gehören wird. Die Innovation-Zweige richten sich an diejenigen, die frühzeitig auf neue Funktionen zugreifen möchten, werden alle 3 Monate veröffentlicht und werden nur bis zur Einführung des nächsten bedeutenden Releases unterstützt (zum Beispiel wird die Unterstützung für den Zweig 9.1 nach der Einführung des Zweigs 9.2 eingestellt). Im Sommer ist die Veröffentlichung eines LTS-Releases geplant, das für Implementierungen empfohlen wird, die Vorhersehbarkeit und eine langfristige Beibehaltung des unveränderten Verhaltens erfordern. Nach dem LTS-Zweig wird ein neuer Innovationszweig – MySQL 10.0 – erstellt.
Hauptänderungen in MySQL 9.2:
- Die MLE (Multilingual Engine Component) ermöglicht es, in Stored Procedures und Funktionen Code in Sprachen zu verwenden, die von SQL abweichen, und unterstützt jetzt wiederverwendbare Bibliotheken in JavaScript. Funktionen aus diesen Bibliotheken können in Stored Procedures auf JavaScript aufgerufen werden, müssen jedoch ausdrücklich mit dem Schlüsselwort „export“ als importiert gekennzeichnet werden. Zur Verwaltung der Verbindungen zu JavaScript-Bibliotheken wurden neue SQL-Anweisungen „CREATE LIBRARY“ und „DROP LIBRARY“ hinzugefügt. Um eine Liste der verfügbaren JavaScript-Bibliotheken anzuzeigen, wurde die Anweisung „SHOW CREATE LIBRARY“ eingefügt. Informationen über JavaScript-Bibliotheken werden in der Systemtabelle „LIBRARIES“ angezeigt, während Informationen über Stored Procedures, die solche Bibliotheken verwenden, in der Tabelle „ROUTINE_LIBRARIES“ reflektiert werden. Das Einbinden einer Bibliothek in einer Stored Procedure erfolgt durch Angabe der Bibliotheksliste in der Anweisung „USING“.
- Eine API wurde hinzugefügt, um auf gespeicherte Prozeduren, Funktionen und Sitzungsvariablen aus JavaScript-Code zuzugreifen. Für den Zugriff auf MySQL-Funktionen wurde die Methode getFunction() hinzugefügt, während für gespeicherte Prozeduren die Methode getProcedure() implementiert wurde, die ein JavaScript-Objekt vom Typ Function zurückgibt, das mit Argumenten ausgeführt werden kann. Der Zugriff auf Variablen erfolgt direkt wie auf Eigenschaften des JavaScript-Objekts Session. Zudem wurde die Möglichkeit hinzugefügt, direkt auf die integrierten Funktionen rand(), sleep(), uuid() und isUUID() zuzugreifen, die den SQL-Funktionen gleichen Namen entsprechen.
- Eine API für die Arbeit mit Transaktionen aus JavaScript wurde hinzugefügt, die die Ausführung der meisten SQL-Anweisungen für Transaktionen ermöglicht, wie beispielsweise „START TRANSACTION“, „COMMIT“, „ROLLBACK“ und „SET AUTOCOMMIT“.
- Die Verwendung der MySQL-Typen ENUM und SET in den Argumenten von in JavaScript geschriebenen gespeicherten Prozeduren wurde hinzugefügt.
- Die Berechtigung CREATE_SPATIAL_REFERENCE_SYSTEM wurde hinzugefügt, mit der die Erstellung und Löschung von Definitionen für räumliche Bezugssysteme in Geoinformationssystemen verwaltet werden kann. Der Besitz dieser Berechtigung oder der SUPER-Berechtigung ist jetzt zwingend erforderlich, um die Ausdrücke „CREATE SPATIAL REFERENCE SYSTEM“, „CREATE OR REPLACE SPATIAL REFERENCE SYSTEM“ und „DROP SPATIAL REFERENCE SYSTEM“ auszuführen.
- Dem Ausgabeformat „EXPLAIN FORMAT=JSON“ wurde Informationen zur Version des JSON-Formats hinzugefügt. Um die Version des JSON-Formats festzulegen, sollte die Variable explain_json_format_version verwendet werden („SET explain_json_format_version=1|2“).
- Abgelegt als veraltet: der Ausdruck „FLUSH PRIVILEGES“, die Befehle „mysqladmin flush-privileges“ und „mysqladmin reload“, sowie das Plugin „version_tokens“.
- Die Unterstützung des Schlüsselworts BINLOG wurde eingestellt.
- 32 Sicherheitsanfälligkeiten wurden behoben, von denen 3 aus der Ferne ausgenutzt werden können. Die beiden schwerwiegendsten Probleme haben eine Gefährdungsstufe von 9.1 und stehen im Zusammenhang mit Schwachstellen in den Komponenten Kerberos und Curl. Weniger gefährliche Schwachstellen betreffen InnoDB, Thread Pooling, DDL, den Optimierer, den Parser und das Authentifizierungssystem.
Quelle: opennet.ru
