Выпуск Π‘Π£Π‘Π” MySQL 9.3.0

Компания Oracle сформировала Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π‘Π£Π‘Π” MySQL 9.3.0. Π‘Π±ΠΎΡ€ΠΊΠΈ MySQL Community Server 9.3.0 ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для всСх основных дистрибутивов Linux, FreeBSD, macOS ΠΈ Windows. Π’ соотвСтствии с Π²Π½Π΅Π΄Ρ€Ρ‘Π½Π½ΠΎΠΉ Π² 2023 Π³ΠΎΠ΄Ρƒ Π½ΠΎΠ²ΠΎΠΉ модСлью формирования Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², MySQL 9.3 отнСсён ΠΊ Π²Π΅Ρ‚ΠΊΠ°ΠΌ Β«InnovationΒ». Innovation-Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Ρ‹ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 3 мСсяца ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС появлСния Π²Π΅Ρ‚ΠΊΠΈ 9.3 ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ 9.2). Π›Π΅Ρ‚ΠΎΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ LTS-Ρ€Π΅Π»ΠΈΠ· 9.4, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сохранСниС Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ повСдСния. Π‘Π»Π΅Π΄ΠΎΠΌ Π·Π° LTS-Π²Π΅Ρ‚ΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сформирована новая Innovation-Π²Π΅Ρ‚ΠΊΠ° β€” MySQL 10.0.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния Π² MySQL 9.3:

  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ mysqldump Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«β€”usersΒ» для создания логичСских Π΄Π°ΠΌΠΏΠΎΠ² с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ всСх ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… записях, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· SQL-выраТСния Β«CREATE USERΒ» ΠΈ Β«GRANTΒ». Для вставки выраТСния Β«DROP USERΒ» ΠΏΠ΅Ρ€Π΅Π΄ Β«CREATE USERΒ» прСдусмотрСна опция Β«β€”add-drop-userΒ», Π° для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ отраТСния Π² Π΄Π°ΠΌΠΏΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ β€” ΠΎΠΏΡ†ΠΈΠΈ Β«β€”include-user=user@hostΒ» ΠΈ Β«β€”exclude-user=user@hostΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·.
  • Π’ Π΄Π²ΠΈΠΆΠΊΠ΅ MLE (Multilingual Engine Component), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΈ функциях ΠΊΠΎΠ΄ Π½Π° языках, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ SQL, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° JavaScript. Для Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π½Π° языкС JavaScript Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‚ΠΈΠΏ Β«DECIMALΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для входящих ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для бСзопасности MySQL-Ρ‚ΠΈΠΏ DECIMAL прСобразуСтся Π² JavaScript-Ρ‚ΠΈΠΏ Β«StringΒ», Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ β€˜SELECT mle_set_session_state(β€˜{Β«decimal_typeΒ»:Β»NumberΒ»}’)’, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ использован JavaScript-Ρ‚ΠΈΠΏ Β«NumberΒ». ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ DECIMAL Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с JavaScript-Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Boolean, Number, String ΠΈ BigInt.
  • Π’ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π° JavaScript Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выставлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ JavaScript API Intl. НапримСр для опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойства Β«Intl.DateTimeFormat().resolvedOptions().localeΒ», Π° для пСрСопрСдСлСния Π»ΠΎΠΊΠ°Π»ΠΈ β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«toLocaleString()Β».
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности для управлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ JavaScript: для измСнСния списка ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ выраТСния Β«ALTER PROCEDUREΒ» ΠΈ Β«ALTER FUNCTIONΒ». Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования выраТСния Β«ALTER LIBRARYΒ» для добавлСния, удалСния ΠΈΠ»ΠΈ измСнСния SQL-коммСнтария ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Для получСния свСдСний ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«SHOW LIBRARY STATUSΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Для динамичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Β«awaitΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«let module = await import(β€˜/db1/lib_${object_type}’)Β».
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ²Π°Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния. Помимо ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Β«=ANYΒ» ΠΈ Β«<>ALLΒ» ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ подзапросов Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Β«>ANYΒ», Β«>=ANYΒ», Β«<ANYΒ», Β«<=ANYΒ», Β«>ALLΒ», Β«>=ALLΒ», Β«<ALLΒ» ΠΈ Β«<=ALLΒ».
  • Π£Π΄Π°Π»Ρ‘Π½ ΠΏΠ»Π°Π³ΠΈΠ½ Β«version_tokensΒ», Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ.
  • Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ выставлСниС значСния 0 Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ replica_parallel_workers.
  • УстранСно 28 уязвимостСй, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 26 ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ эксплуатированы ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ доступа для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов ΠΊ Π‘Π£Π‘Π”. Π¨Π΅ΡΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ опасности 6.5 ΠΈ связаны с уязвимостями Π² Π΄Π²ΠΈΠΆΠΊΠ΅ InnoDB, парсСрС ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅. МСнСС опасныС уязвимости Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ mysqldump, InnoDB, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€, DDL, UDF, парсСр ΠΈ систСму Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ