はじめに
MariaDBで新しいユーザーを作成するには、新規ユーザーを作成できる十分な権限を持つアカウントでMariaDBサーバーにアクセスできる必要があります。そのようなアカウントをお持ちでない場合は、データベース管理者に連絡してユーザーを作成してもらう必要があります。
必要な権限をお持ちであれば、次の手順でMariaDBに新しいユーザーを作成できます。
MariaDBに接続する
MariaDBサーバーには、mysqlコマンドラインクライアントを使うか、Beekeeper Studioを使ってGUIで接続できます。必要な権限を持つアカウントの適切なユーザー名とパスワードを入力する必要があります。
CREATE USERを実行する
MariaDBサーバーに接続したら、CREATE USERステートメントを使って新しいユーザーを作成します。このステートメントの形式は次のとおりです。
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
usernameを新しいユーザーに付けたいユーザー名に、hostnameをユーザーの接続元となるサーバーのホスト名またはIPアドレスに、passwordをユーザーに設定したいパスワードに置き換えてください。
データベースユーザー用の安全なパスワードが必要ですか?無料のデータベースパスワードジェネレーターツールをお試しください。
以下は、ユーザー「matthew」が任意のホストから接続できるようにする例です。
CREATE USER 'matthew'@'%' IDENTIFIED BY 'supersecretpassword';
権限を付与する
ユーザーを作成したら、そのユーザーに必要な権限を付与する必要があります。これにはGRANTステートメントを使用します。形式は次のとおりです。
GRANT priv_type ON priv_level TO 'username'@'hostname';
priv_typeを付与したい権限の種類(SELECT、INSERT、UPDATEなど)に、priv_levelを権限を適用するレベル(特定のデータベースやテーブルなど)に、usernameとhostnameをCREATE USERステートメントで使用した値に置き換えてください。
SHOW PRIVILEGESを実行すると、データベースがサポートするすべての権限を確認できます。詳しくは公式ドキュメントをご覧ください。
以下は、ユーザーMatthewにすべてのデータベースに対するALL権限を付与する例です。
GRANT ALL PRIVILEGES ON * . * TO 'matthew'@'%';
権限をフラッシュする
ユーザーに必要な権限を付与したら、FLUSH PRIVILEGESステートメントを使って変更を反映させることができます。このステートメントの形式は次のとおりです。
FLUSH PRIVILEGES;
以上です
これらの手順を完了すると、新しいユーザーはMariaDBサーバーに接続し、付与された権限で許可された操作を実行できるようになります。なお、REVOKEステートメントでユーザーから権限を取り消したり、DROP USERステートメントでユーザーを完全に削除したりすることもいつでも可能です。
MariaDB CREATE USERのまとめ
まとめると、MariaDBで新しいユーザーを作成するには、CREATE USERとGRANTステートメントでユーザーを作成して必要な権限を付与し、その後FLUSH PRIVILEGESステートメントで変更を反映させます。MariaDBサーバーのセキュリティと整合性を確保するため、ユーザーアカウントと権限は常に慎重に管理することが重要です。
Beekeeper Studioは無料&オープンソースのMariaDB GUIです
Beekeeper StudioはMariaDBを管理するために私が見つけた最高のツールです。多機能で使いやすく、便利なオプションもたくさんあります。まさに逸品です!開発チームの皆さん、おめでとうございます! - Nick
Beekeeper Studioは高速で直感的、使いやすいMariaDBクライアントです。他にも多数のデータベースに対応しており、Windows、Mac、Linuxで快適に動作します。
Beekeeper StudioについてのMariaDB利用者の声
MariaDBに付属している(しかも無料の)HeidiSQLをずっと使ってきましたが、遅い、あるいはほぼ機能しないオートコンプリートや、マウスを多用しなければならない点にいつも不満を感じていました。BeeKeeperはこうした不満を解消してくれます。テーブルデータのJSON整形もとても便利です。
私の仕事ではMSSQL/Mariadb/Oracle/Postgres、sqliteを使って、レガシーコードから新規コードまですべてを扱っています。ついに、必要なものがすべて1つにまとまったツールを見つけたと思います