Die Firma Oracle hat einen neuen Branch der MySQL-Datenbankversion 9.3.0 erstellt. Die MySQL Community Server 9.3.0-Builds sind fĂŒr alle gĂ€ngigen Linux-Distributionen, FreeBSD, macOS und Windows vorbereitet. GemÀà dem im Jahr 2023 eingefĂŒhrten neuen Release-Modell wurde MySQL 9.3 zu den 'Innovation'-Branches eingestuft. Die Innovation-Branches werden fĂŒr diejenigen empfohlen, die frĂŒher Zugriff auf neue Funktionen haben möchten, erscheinen alle drei Monate und werden nur bis zur Veröffentlichung des nĂ€chsten bedeutenden Releases unterstĂŒtzt (z. B. nach der Veröffentlichung des Branches 9.3 wird die UnterstĂŒtzung fĂŒr den Branch 9.2 eingestellt). Im Sommer ist die Veröffentlichung eines LTS-Release 9.4 geplant, das fĂŒr Implementierungen empfohlen wird, die Vorhersehbarkeit und langfristige StabilitĂ€t benötigen. Nach dem LTS-Branch wird ein neuer Innovation-Branch â MySQL 10.0 â erstellt.
Wesentliche Ănderungen in MySQL 9.3:
- In das Dienstprogramm mysqldump wurde die Option 'âusers' hinzugefĂŒgt, um logische Dumps mit Informationen ĂŒber alle Konten zu erstellen, die durch die SQL-Anweisungen 'CREATE USER' und 'GRANT' ausgegeben werden. FĂŒr die EinfĂŒgung der Anweisung 'DROP USER' vor 'CREATE USER' gibt es die Option 'âadd-drop-user', und zur selektiven Reflektion einzelner Benutzer im Dump sind die Optionen 'âinclude-user=user@host' und 'âexclude-user=user@host' vorhanden, die mehrfach angegeben werden können.
- Im MLE (Multilingual Engine Component), das die Verwendung von Code in gespeicherten Prozeduren und Funktionen in Sprachen auĂer SQL ermöglicht, wurde die UnterstĂŒtzung fĂŒr JavaScript verbessert. FĂŒr gespeicherte Prozeduren in JavaScript wurde der Typ 'DECIMAL' implementiert, der fĂŒr Eingabewerte und RĂŒckgabewerte verwendet werden kann. StandardmĂ€Ăig wird der MySQL-Typ DECIMAL aus SicherheitsgrĂŒnden in den JavaScript-Typ 'String' umgewandelt, aber dieses Verhalten kann mit dem Befehl 'SELECT mle_set_session_state(â{âdecimal_typeâ:âNumberâ}â)' ĂŒberschrieben werden, nach dem der JavaScript-Typ 'Number' verwendet wird. Die Umwandlung von Werten mit den JavaScript-Typen Boolean, Number, String und BigInt in den DECIMAL-Typ wird unterstĂŒtzt.
- In die gespeicherten Prozeduren in JavaScript wurde die UnterstĂŒtzung fĂŒr das Setzen von Lokalisierungsparametern ĂŒber die JavaScript-API Intl integriert. Zum Beispiel kann die aktuelle Locale mit der Eigenschaft 'Intl.DateTimeFormat().resolvedOptions().locale' ermittelt werden, und zur Ăberschreibung der Locale kann die Methode 'toLocaleString()' verwendet werden.
- Die Möglichkeiten zur Verwaltung von JavaScript-Bibliotheken wurden erweitert: FĂŒr die Ănderung der Liste importierter Bibliotheken können nun die AusdrĂŒcke âALTER PROCEDUREâ und âALTER FUNCTIONâ verwendet werden. Es wurde die Möglichkeit hinzugefĂŒgt, den Ausdruck âALTER LIBRARYâ zum HinzufĂŒgen, Löschen oder Ăndern von SQL-Kommentaren zur Bibliothek zu verwenden. Um Informationen ĂŒber die Bibliothek zu erhalten, wurde der Ausdruck âSHOW LIBRARY STATUSâ implementiert.
- Die UnterstĂŒtzung fĂŒr das dynamische Laden von JavaScript-Bibliotheken wurde hinzugefĂŒgt. FĂŒr den dynamischen Import einer Bibliothek sollte das SchlĂŒsselwort âawaitâ verwendet werden, zum Beispiel âlet module = await import(â/db1/lib_${object_type}â)â.
- Die Optimierungen fĂŒr Abfragen, die quantifizierte Vergleichsoperatoren verwenden, wurden erweitert. Neben der UnterstĂŒtzung der Operatoren â=ANYâ und âALLâ wurde in der neuen Version die UnterstĂŒtzung fĂŒr die Operatoren â>ANYâ, â>=ANYâ, â<ANYâ, âALLâ, â>=ALLâ, â<ALLâ und â<=ALLâ hinzugefĂŒgt.
- Das Plugin âversion_tokensâ, das zuvor als veraltet erklĂ€rt wurde, wurde entfernt.
- Es ist verboten, den Wert 0 fĂŒr die Systemvariable replica_parallel_workers zu setzen.
- 28 SicherheitsanfÀlligkeiten wurden behoben, von denen 26 aus der Ferne ausgenutzt werden können, wenn Zugang zum Senden von Anfragen an das DBMS besteht. Sechs der schwerwiegendsten Probleme haben einen Schweregrad von 6,5 und sind mit SicherheitsanfÀlligkeiten im InnoDB-Engine, Parser und Optimierer verbunden. Weniger schwerwiegende SicherheitsanfÀlligkeiten betreffen mysqldump, InnoDB, den Optimierer, DDL, UDF, Parser und das Replizierungssystem.
Quelle: opennet.ru
