Die Firma Oracle hat einen neuen Zweig der Datenbank MySQL 9.2.0 eingefĂŒhrt. Die Versionen MySQL Community Server 9.2.0 sind fĂŒr alle gĂ€ngigen Linux-Distributionen, FreeBSD, macOS und Windows vorbereitet. Im Rahmen des im Jahr 2023 eingefĂŒhrten neuen Modells zur Veröffentlichung von Releases wurde MySQL 9.2 den "Innovation"-Zweigen zugeordnet, zu denen auch die nĂ€chste bedeutende Version MySQL 9.3 gehören wird. Die Innovation-Zweige werden fĂŒr diejenigen empfohlen, die frĂŒher Zugang zu neuen FunktionalitĂ€ten erhalten möchten, erscheinen alle 3 Monate und werden nur bis zur Veröffentlichung des nĂ€chsten bedeutenden Releases unterstĂŒtzt (beispielsweise wird nach dem Erscheinen des Zweigs 9.2 die UnterstĂŒtzung des Zweigs 9.1 eingestellt). Im Sommer ist die Veröffentlichung eines LTS-Releases geplant, das fĂŒr Implementierungen empfohlen wird, die Vorhersehbarkeit und langfristige StabilitĂ€t erfordern. Dem LTS-Zweig folgt ein neuer Innovation-Zweig â MySQL 10.0.
Wesentliche Ănderungen in MySQL 9.2:
- In die MLE-Engine (Multilingual Engine Component), die es ermöglicht, in gespeicherten Prozeduren und Funktionen Code in anderen Sprachen als SQL zu verwenden, wurde die UnterstĂŒtzung fĂŒr wiederverwendbare Bibliotheken in der Programmiersprache JavaScript eingefĂŒhrt. Funktionen aus solchen Bibliotheken können aus gespeicherten Prozeduren in JavaScript aufgerufen werden, mĂŒssen jedoch beim Import mit dem SchlĂŒsselwort âexportâ eindeutig gekennzeichnet werden. Zur Verwaltung der Verbindungen zu JavaScript-Bibliotheken wurden neue SQL-Aussagen âCREATE LIBRARYâ und âDROP LIBRARYâ hinzugefĂŒgt. Um die Liste der verfĂŒgbaren JavaScript-Bibliotheken einzusehen, wurde die Aussage âSHOW CREATE LIBRARYâ ergĂ€nzt. Informationen zu JavaScript-Bibliotheken werden in der Systemtabelle âLIBRARIESâ angezeigt, wĂ€hrend gespeicherte Prozeduren, die solche Bibliotheken nutzen, in der Tabelle âROUTINE_LIBRARIESâ erfasst sind. Das Einbinden einer Bibliothek in einer gespeicherten Prozedur erfolgt ĂŒber die Angabe der Bibliotheksliste in der Aussage âUSINGâ.
- Eine API fĂŒr den Zugriff auf gespeicherte Prozeduren, Funktionen und Sitzungsvariablen aus JavaScript-Code wurde hinzugefĂŒgt. Um auf MySQL-Funktionen zuzugreifen, wurde die Methode getFunction() hinzugefĂŒgt, und fĂŒr gespeicherte Prozeduren - die Methode getProcedure(), die ein JavaScript-Objekt Function zurĂŒckgibt, das mit Argumenten ausgefĂŒhrt werden kann. Der Zugriff auf Variablen erfolgt direkt als Eigenschaften des JavaScript-Objekts Session. DarĂŒber hinaus wurde die Möglichkeit des direkten Zugriffs auf die eingebauten Funktionen rand(), sleep(), uuid() und isUUID() hinzugefĂŒgt, die den gleichnamigen SQL-Funktionen entsprechen.
- Eine API fĂŒr die Arbeit mit Transaktionen aus JavaScript wurde hinzugefĂŒgt, die die AusfĂŒhrung der meisten SQL-AusdrĂŒcke fĂŒr die Arbeit mit Transaktionen ermöglicht, wie z.B. âSTART TRANSACTIONâ, âCOMMITâ, âROLLBACKâ und âSET AUTOCOMMITâ.
- Die Möglichkeit, MySQL-Typen ENUM und SET in den Argumenten von in JavaScript geschriebenen gespeicherten Prozeduren zu verwenden, wurde hinzugefĂŒgt.
- Das Privileg CREATE_SPATIAL_REFERENCE_SYSTEM wurde eingefĂŒhrt, mit dem die Möglichkeit verwaltet wird, Definitionen fĂŒr die rĂ€umliche Bindung von Geoinformationssystemen zu erstellen und zu löschen. Der Besitz dieses Privilegs oder des Privilegs SUPER ist nun erforderlich, um die AusdrĂŒcke âCREATE SPATIAL REFERENCE SYSTEMâ, âCREATE OR REPLACE SPATIAL REFERENCE SYSTEMâ und âDROP SPATIAL REFERENCE SYSTEMâ auszufĂŒhren.
- Die Ausgabe âEXPLAIN FORMAT=JSONâ wurde um Informationen zur Version des JSON-Formats erweitert. Um die Version des JSON-Formats festzulegen, sollte die Variable explain_json_format_version verwendet werden (âSET explain_json_format_version=1|2â).
- Folgendes wurde als veraltet erklĂ€rt: der Befehl âFLUSH PRIVILEGESâ, die Befehle âmysqladmin flush-privilegesâ und âmysqladmin reloadâ, sowie das Plugin âversion_tokensâ.
- Die UnterstĂŒtzung fĂŒr das SchlĂŒsselwort BINLOG wurde eingestellt.
- 32 SicherheitsanfÀlligkeiten wurden behoben, darunter 3, die aus der Ferne ausgenutzt werden können. Die beiden schwerwiegendsten Probleme haben ein GefÀhrdungsniveau von 9.1 und beziehen sich auf Schwachstellen in den Komponenten Kerberos und Curl. Weniger schwerwiegende Schwachstellen betreffen InnoDB, Thread Pooling, DDL, den Optimierer, den Parser und das Authentifizierungssystem.
Quelle: opennet.ru
