MySQLのユーザー管理

深く考えずにクライアントでヘルプを読んでいると、なぜか「DROP USER」があるのに「CREATE USER」や「ADD USER」がない事に気付いて、マニュアルを参照すると…なぜ「GRANT」でユーザーが作成されるんだ?

かなり訳の分からない仕様。百歩譲って、「GRANT」で指定されたユーザーが存在しないときにユーザーを自動作成するというのはあり得ると思う*1が、それでユーザーを作るのが標準という仕様は理解出来ない。


MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.3.2 ユーザーアカウントの追加


更に調べると、ver5では「CREATE USER」の構文がサポートされるようになったらしい。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.7.1.2 CREATE USER 構文

但し、相変わらず「GRANT」でユーザーが作れるようだ。

*1:本来エラーになるべきだと思うが。スペル間違いなどの事象を考えると、自動的に作成することの方が親切とは思えない。