GRANT構文を使いユーザーを作成
Q&A
MySQLでGRANT構文を使いユーザーを作成し、
そのユーザーがMySQLにログインする際のパスワードを設定したいです。
構文がGRANT ALL ON DB名.* TO 'ユーザ名'@'ホスト名';
とありますが、'ユーザ名'の箇所は新規で作成したいユーザー名ですか?
それとも、docker-compose ymlに MYSQL_USER: myappuserとあるのですが、
こちらのmyappuserを使えばいいですか?
またパスワードを設定する際はGRANT構文の後ろにIDENTIFIED BY 'password'とするとサイトで見ましたが、
'password'とそのまま書くのか、それとも独自のパスワードを書けばいいですか?
独自のパスワードを使う際は大文字小文字を使わなければいけないなどルールはありますか?
試したこと
GRANT ALL ON myapp.* TO 'myappuser'@'localhost' IDENTIFIED BY 'password';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'password'' at line 1
'ユーザ名'をfutsaluserに変更
GRANT ALL ON myapp.* TO futsaluser'@'localhost' IDENTIFIED BY 'password';
同エラー
'ユーザ名'をmyappuser、'password'をsoccerに変更
GRANT ALL ON myapp.* TO 'myappuser'@'localhost' IDENTIFIED BY ‘soccer’;
同エラー
'ユーザ名'をfutsaluser、'password'をsoccerに変更
GRANT ALL ON myapp.* TO ‘futsaluser'@'localhost' IDENTIFIED BY ‘soccer’;
同エラー
現在の状況を確認してみました。
SHOW GRANTS;
GRANT USAGE ON . TO myappuser
@%
GRANT ALL PRIVILEGES ON myapp
.* TO myappuser
@%
何故%なのか、以前作ったものなのか分かりませんが、一度削除を試みましたがエラーでした。
REVOKE ALL PRIVILEGES ON . FROM myappuser@%;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%' at line 1
%をlocalhostに変更
REVOKE ALL PRIVILEGES ON . FROM myappuser@localhost;
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation
他に何か試せることはありますか?
また上記の疑問も教えていただけると幸いです。