スポンサーリンク

MySQL アカウント(ユーザ)の作成方法

スポンサーリンク

CREATE USERステートメントを使用して、MySQLに接続する為のMySQLアカウントを作成する方法を紹介します。

新しいアカウントを作成する

基本構文

基本的な構文は次の通りです。

CREATE USER <ACCOUNT_NAME> IDENTIFIED BY '<PASSWORD>'

<ACCOUNT_NAME>には作成するアカウント名を指定します。<PASSWORD>には作成するアカウントのパスワードを指定します。パスワードはシングルクォーテーションで囲む必要がありますので注意してください。

MySQLのアカウント名はユーザ名とホスト名で構成されます。これにより、ユーザ名が同じで接続元ホストがことるユーザを作成することが出来ます。<ACCOUNT_NAME>の指定は’user_name’@’host_name’の構文で指定します。’user_name’は文字通りアカウント(ユーザ)の名前でうす。’host_name’は「localhost」や「192.168.1.1/24」などを指定して接続元のホストを指定します。「@’host_name’」を省略すると「@’%’」が指定された事になり、全てのホストから接続できるアカウントになります。

実行

では実際にアカウントを作成してみます。

rootでMySQLに接続してCREATE USERステートメントを実行します。

作成したアカウントでMySQLに接続します。

パスワードの入力待ちとなりますので、パスワードを指定します。これでMySQLに接続が完了します。

接続に成功しました。ただ、この時点では、testUserはinformation_schemaデータベースにしか参照権限がありません。

アカウントにデータベースの権限付与

以下の構文で作成したユーザに指定のデータベースへの全権限を付与します。

GRANT ALL ON <DB_NAME>.* TO <ACCOUNT_NAME>

今回は「my_db」というデータベースが既にある環境なので、「my_db」の参照権限を付与します。

rootでMySQLに接続してGRANTステートメントを実行します。

testUserで接続しなおして、「my_db」が見えることを確認します。

無事、「my_db」データベースに接続出来ました。

参考

CREATE USERステートメントの詳細な構文はMySQLのマニュアルを参照してください。

MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.7.1.3 CREATE USER ステートメント

GRANTステートメントの詳細な構文はMySQLのマニュアルを参照してください。

MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.7.1.6 GRANT ステートメント

コメント