rdbmsTweetデモの準備をしていて、MySQL5.7で動いていたページが以下のようにエラーになったので、今後の為にメモ。マニュアルやブログで確認してはいて、情報としては認識していたのですがMySQL8.0.4以降の変更点なので忘れてました。8.0では、mysql_native_passwordではなくcaching_sha2_passwordがデフォルトの認証プラグインです。変更理由はセキュリティ強化とパフォーマンスcaching_sha2_passwordおよびsha256_password認証プラグインは、mysql_native_passwordプラグインよりも安全なパスワード暗号化を提供し、caching_sha2_passwordはsha256_passwordよりも優れたパフォーマンスを提供します。8.0.4以降の認証プラグインであり、mysql_native_passwordではなくデフォルトの認証プラグインでもあります。https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password現状では、コネクターが対応していない為、アカウント認証をMySQL8.0.4以前の認証方法に戻します。8.0サーバに接続する際に互換性を保証する最良の方法です、それらはデフォルトの認証プラグインとしてcaching_sha2_passwordを使用して構成されています。8.0.4以降のlibmysqlclientクライアントライブラリ。mysqlやmysqladminなどの標準的なMySQLクライアントはlibmysqlclientベースである為、互換性があります。higher.注意:2018年2月現在、caching_sha2_password互換クライアントはGAになってない為、MySQL8.0がGAになるまでしばらく進捗を確認する必要があります。USERステートメントを使用して変更できます。8.0.4以降にアップグレードした後で互換性の問題が発生した場合、これらの問題に対処して8.0以前の互換性を復元する最も簡単な方法は、サーバを再設定しプラグイン(mysql_native_password)を利用します。必要に応じて、オプションファイルに次の行を設定してください。[mysqld]default_authentication_plugin=mysql_native_passwordMySQL8.0をアプリケーションで利用される場合はこちらを確認ください。Firewallも再度機能確認してみました。Firewallの組み合わせで、重要な情報を扱うデータベースに追加する事で、セキュリティを更に強固にすることが可能です。Webで公開しているアカウントにFirewallを設定して,外部からの入力フィルターをアプリケーションのフレームワークのEscape処理のみに依存しない。社内で利用しているアカウントにWHERE句を利用しない参照処理をさせないように制限する。Monitorと連携してセキュリティ担当者にメールやSNMPで知らせる。“サイバーセキュリティ経営ガイドライン@経済産業省“に「指示5サイバーセキュリティリスクに対応するための仕組みの構築」に、新たに「攻撃の検知」を含めたリスク対応体制についての記載”が改定されていました。Auditの機能が拡張されています。主な変更点は、以下の4つになります。関わるデータに監査が必用な場合は、MySQLのオプション機能として利用するを検討しても良いかもしれません。MySQL5.7.21から監査設定用のインストールスクリプトもMyISAMからInnoDBに変更されています。FirewallのスクリプトもEngineがInnoDBに変更されていました。Auditを利用されている方は、監査定義で利用するテーブルを以下のようにマニュアルでInnoDBに変更する事を推奨となっています。Auditのファンクションを利用してJSONのログを読み取る。audit_log_read_bookmark()最後に書き込まれた監査ログイベントのブックマークを表すJSON文字列を返します。このブックマークはaudit_log_read()に渡して、読み込みを開始する場所を指定するのに適しています。audit_log_read()監査ログからイベントを読み取り、監査イベントの配列を含むJSON文字列を返します。GZIPされていても、audit_log_readでログファイルを確認する事が可能なようだ。Auditログの暗号化AESでAuditログを暗号化する機能が追加された。Auditログは暗号化されているため、先に複合化しないと読み込めない。