2023.09.28

Percona

Percona Server for MySQL 8.0.34-26(リリース日:2023年9月26日)

リリースハイライト

  • Percona Server for MySQL 8.0.34-26は、監査ログフィルタープラグインを実装しています。このプラグインは、選択したサーバー上のユーザーアクティビティを監視するために使用できる一連の機能を提供します:
    • ユーザー/接続、アクセスされたデータベース/テーブル名、クエリ内容などに基づいて監査イベントをフィルタリングします。フィルタリングルールはJSON形式です。
    • 監査を動的に有効/無効にします。既存のフィルタリングルールを追加または調整するためにサーバーを再起動する必要はありません。
    • フィルタリングルールを使用して、ログファイルに書き込まれたSQLステートメントから機密データを削除します。
    • フィルタリングルールを使用して、特定の条件(例:データベース/テーブル名、ユーザー名)に一致するイベントをブロックします。
    • フィルタリングルールを設定して、各クエリでクエリ属性を介して提供される追加情報を監査ログに書き込みます。
    • AES-256暗号化を使用して監査ログファイルを暗号化します。プラグインは、既存のログファイルの暗号化に使用される暗号化パスワード一式を保持します。外部アプリケーションはこれらのパスワードを使用して、暗号化されたログにアクセスする可能性があります。
    • 監査ログファイルを圧縮して、ログファイルによって使用される記憶域スペースを削減します。
    • ログファイルの自動ローテーションと削除を設定します。ログファイルによって使用されている記憶域スペースまたはログファイルの経過時間に基づいて、古いログファイルを削除できます。
  • Percona Server for MySQL 8.0.34-26は、データマスキングプラグインの改良および強化されたバージョンであるデータマスキングコンポーネントを実装します。データマスキングコンポーネントにより、次の機能が追加されます:
    • ランダム生成/マスキング関数のマルチバイト文字セットのサポート
    • IBAN、UUID、カナダ SIN、英国 NINの新しいマスキング関数
    • BAN、UUID、カナダ SIN、英国 NIN用の新しいランダム生成機能
    • データベースに代替ディクショナリを保存する機能
    • ディクショナリ操作に必要な動的権限 MASKING_DICTIONARIES_ADMIN
    • コンポーネントのインストール/アンインストール中の自動化されたロード可能関数の登録/登録解除

このマージにより、次の問題が修正されます:

  • PS-8770: INSTANT DDLにより、Percona Server 8.0.32が5.7.41からアップグレードした後に終了しました。

Oracle for MySQL 8.0.34によって導入され、Percona Server for MySQLに含まれる改善点とバグ修正は次のとおりです:

  • MySQL 8.0.33では、JSONフィルターテーブルの保存に使用するデータベースを選択するためのaudit_logプラグインのサポートが追加されました。プラグインのインストールスクリプトを実行する時に、デフォルトのシステムデータベースであるmysqlの代替データベースを指定できるようになりました。例えば:
    $> mysql -u root -D database_name -p < audit_log_filter_linux_install.sql
  • mysql_binlog_open()、mysql_binlog_fetch()、mysql_binlog_close()関数をlibmysqlclient.so共有ライブラリに追加します。これらの関数を使用すると、開発者はMySQLサーバーのバイナリログにアクセスできます。
  • OpenSSLライブラリがバンドルされているプラットフォームの場合、MySQL Server用のリンクされたOpenSSLライブラリがOpenSSL 1.1.1からOpenSSL 3.0.9に更新されます。

非推奨と削除

  • mysqlpumpクライアントユーティリティプログラムは非推奨になりました。このプログラムを使用すると警告が発生します。mysqlpumpクライアントは将来のリリースで削除される可能性があります。mysqlpumpに依存するアプリケーションは、mysqldumpまたはMySQLシェルユーティリティを使用します。
  • sync_relay_log_infoサーバーシステム変数は非推奨になりました。この変数または同等の起動オプション --sync-relay-log-infoを使用すると、警告が発生します。この変数は将来のリリースで削除される可能性があります。この変数を使用するアプリケーションは、この変数が削除される前に、この変数に依存しないように書き直す必要があります。
  • binlog_formatサーバーシステム変数は非推奨になり、将来のリリースで削除される可能性があります。バイナリログ形式を変更する、この変数に関連付けられた機能も非推奨になります。
    binlog_formatが削除されると、MySQLサーバーは行ベースのバイナリロギングのみをサポートします。したがって、新しいインストールでは行ベースのバイナリロギングのみを使用する必要があります。ステートメントベースまたは混合ロギング形式を使用する既存のインストールを行ベース形式に移行してください。
    ステートメントベースのロギングのコンテキストで使用されるシステム変数 log_bin_trust_function_creatorsおよびlog_statements_unsafe_for_binlogも非推奨となり、将来のリリースで削除される可能性があります。
    非推奨の変数の値を設定または選択すると、警告が表示されます。
  • mysql_native_password 認証プラグインは非推奨になり、将来のリリースで削除される可能性があります。CREATE USER、ALTER USER、SET PASSWORD操作を使用する時、アカウントが認証方法としてmysql_native_passwordを使用して認証を試行した場合はサーバーエラーログに非推奨の警告が挿入されます。
  • 従来のフィルタリングモードは非推奨になりました。従来の監査ログフィルタリングシステム変数に対して、新しい非推奨の警告が生成されます。非推奨の変数は読み取り専用または動的です。
    audit_log_policy 読み取り専用変数は、その値がALL(デフォルト値)以外の値に設定されている場合、サーバーの起動中にMySQLサーバーのエラーログに警告メッセージを書き込みます。
    audit_log_include_accounts、audit_log_exclude_accounts、audit_log_statement_policy、audit_log_connection_policyは動的変数です。動的変数は、使用状況に基づいて警告メッセージを出力します:

    • MySQLサーバーの起動中に、audit_log_include_accountsまたはaudit_log_exclude_accountsにNULL以外の値を渡すと、警告メッセージがサーバーエラーログに書き込まれます。
    • MySQLサーバーの起動中に、audit_log_statement_policyまたはaudit_log_connection_policyにデフォルト以外の値を渡すと、警告メッセージがサーバーエラーログに書き込まれるようになりました。ALLは両方の変数のデフォルト値です。
    • MySQLクライアントセッション中にSET構文を使用して既存の値を変更すると、警告メッセージがクライアントログに書き込まれます。
    • MySQLクライアントセッション中にSET PERSIST構文を使用して変数を永続化すると、警告メッセージがクライアントログに書き込まれます。
  • keyring_fileプラグインとkeyring_encrypted_fileプラグインは非推奨になりました。これらのキーリングプラグインは、component_keyring_fileコンポーネントとcomponent_keyring_encrypted_fileコンポーネントに置き換えられます。

新機能

  • PS-8848: 接続制御プラグインの冗長性を高めます。
  • PS-8728: データマスキングコンポーネントを追加して、Perconaデータマスキング機能をOracle 8.0.33に合わせます。
  • PS-8042: 監査ログフィルタープラグインを実装します。

監査ログフィルタープラグイン機能を実装することにより、次の機能と改善が追加されました:

  • PS-3874: 複数の設定を可能にするオプションを監査プラグインに追加します。
  • PS-5164: Rows_sentフィールドとRows_examinedフィールドを監査ログプラグインに追加します。
  • PS-5814: MySQLの起動時に監査ログをローテーションできるようにします。
  • PS-236: プリペアドステートメントが監査プラグインに記録されるようになりました。
  • PS-2480: 監査ログがASYNCモードで同期書き込みを行う時の診断を追加します。
  • PS-7331: audit_log_rotationsオプションのデフォルト値をローテーションするように設定します。
  • PS-5945: SYSLOGに書き込む時に、MySQLサーバーのホスト名をaudit_logの詳細に追加します。

改善点

  • PS-8624: テーブルキャッシュ内のトリガーを持つTABLEオブジェクトの数を公開します。
  • PS-8742: audit_log_filter_databaseシステム変数を追加します。
  • PS-3942: PING_CMDに正しいcommand_classがあることを確認するために、audit_log MTRテストを追加します。

バグ修正

  • PS-8504: audit_log_filter_buffer_sizeに大きな値を設定すると、サーバーが終了しました。
  • PS-8772: INSERT (...) SELECTを使用すると、インスタンスが完全に停止しました。
  • PS-8797: 監査ログプラグインのインストールによりサーバーが終了しました。
  • PS-8810: テーブルにDOUBLE列が含まれている場合、テーブルのFEDERATED更新が通知なしで失敗することがありました。
  • PS-8869: 半同期マスターは、半同期レプリカがダウンした時、および非同期に置き換えられた時、ACKを待ちました。
  • PS-8871: RESOURCE GROUPヒントがプリペアドステートメント内で使用されると失敗しました。
  • PS-8877: performance_schema.innodb_redo_log_filesから選択するとサーバーが終了しました。
  • PS-8785: buf_LRU_free_from_common_LRU_listの最初の反復ではメトリクスが増加しませんでした。
  • PS-8907: xプラグインからの接続でMySQLにSIGTERMシグナルを送信すると、MySQLがシャットダウンされずに終了されました。
  • PS-8882: データディクショナリテーブルオブジェクトのキャッシュがいっぱいの時にCREATE TABLE SELECTを実行すると、その実行は失敗しました。この問題は、データディクショナリテーブルオブジェクトのキャッシュ容量(--max_connectionsに等しい)よりも重要な多数のテーブルの名前を変更するRENAME TABLESを実行した後に発生しました。
  • PS-8836: INSERT後のUPDATEが失敗しました。同じUPDATEを再試行すると、成功します。
  • PS-8592: XCom接続は、ネットワーク上のread()システムコールで永久に停止しました。この問題により、ノードがクラスターに再参加できなくなりました。

次のバグは、監査ログフィルタープラグインを実装することによって修正されました:

  • PS-5784: MySQL 8のデフォルトのaudit_log_formatパラメータ値はNEWでしたが、Percona Server for MySQLの監査ログプラグインのデフォルト値はOLDでした。
  • PS-6863: audit_logプラグインは、audit_api_message_emitコンポーネントからのアプリケーションメッセージを処理しませんでした。

パッケージ関連

Percona Server for MySQL 8.0.34-26は、Debian 12をサポートしています。


Percona Server for MySQL 8.0.34-26 リリース情報(Percona社ウェブサイト):
https://docs.percona.com/percona-server/8.0/release-notes/8.0.34-26.html


Perconaサポート・コンサルティング

Percona
Perconaサポート・コンサルティングサービスはPercona Serverをご利用頂いているお客様が安心してお使い頂くために専門的なサポートを提供するサービスです。