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のマニュアルを参照してください。
GRANTステートメントの詳細な構文はMySQLのマニュアルを参照してください。
コメント