データベースの安全性を高める!MariaDB rootユーザーのパスワードとunix_socket認証設定ガイド
MariaDB rootユーザーのパスワードとunix_socket認証を有効にする
MariaDBは、MySQLと互換性のあるオープンソースのデータベース管理システムです。デフォルトでは、rootユーザーはパスワード認証なしでログインできます。これはセキュリティ上のリスクとなりますので、パスワード認証とunix_socket認証を有効にすることを強く推奨します。
手順
- MariaDBサーバーを停止します。
systemctl stop mariadb
- MariaDB設定ファイルを編集します。
vim /etc/my.cnf.d/mariadb.cnf
- 以下の行を編集します。
# パスワード認証を有効にする
skip-password = no
# unix_socket認証を有効にする
authentication_plugins = mysql_native_password,pam
systemctl start mariadb
- rootユーザーのパスワードを設定します。
mysql -u root -p
パスワードを入力してEnterキーを押します。パスワードはセキュリティ上の理由で、推測困難なものにしてください。
- 以下のコマンドを実行して、パスワード設定が反映されたことを確認します。
mysql -u root -p
パスワードを入力してEnterキーを押します。パスワードが正しく設定されていれば、MariaDBにログインできます。
補足
- unix_socket認証は、ローカル接続でのみ使用できます。
- パスワード認証とunix_socket認証の両方を有効にすることで、より高いセキュリティを実現できます。
- 設定ファイルを変更する前に、必ずバックアップを取るようにしてください。
警告
- パスワードは安全な場所に保管してください。
- パスワードを推測しやすいものにしてはいけません。
- 不要なユーザーアカウントは削除してください。
# MariaDB設定ファイル
# パスワード認証を有効にする
skip-password = no
# unix_socket認証を有効にする
authentication_plugins = mysql_native_password,pam
# パスワード設定コマンド
mysql -u root -p
# パスワード確認コマンド
mysql -u root -p
注意
上記のコードはサンプルであり、環境に合わせて変更する必要があります。
MariaDB rootユーザーのパスワードとunix_socket認証を有効にする他の方法
- MariaDBシェルにログインします。
mysql -u root
ALTER USER root IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED VIA unix_socket WITH GRANT OPTION;
FLUSH PRIVILEGES;
MySQL Workbenchを使用する
- "データベース接続"ダイアログで、接続名、ホスト名、ユーザー名、パスワードを入力します。
- "接続"ボタンをクリックして、MariaDBサーバーに接続します。
- "サーバー" > "ユーザー管理" > "ユーザー"を選択します。
- "root"ユーザーを選択します。
- "パスワード"タブで、パスワード認証を有効にして、パスワードを設定します。
- "認証"タブで、"unix_socket"認証を選択します。
- "適用"ボタンをクリックして、設定を保存します。
設定ファイルを直接編集する
vim /etc/my.cnf.d/mariadb.cnf
# パスワード認証を有効にする
skip-password = no
# unix_socket認証を有効にする
authentication_plugins = mysql_native_password,pam
systemctl restart mariadb
上記の方法は、いずれもrootユーザーで実行する必要があります。
mysql authentication passwords