MySQLでのユーザー管理コマンドのメモ

PostgreSQLに続いて、MySQLでのユーザー管理系のコマンドのメモ。

  • 管理者権限を持ったrootユーザーと同様のユーザーを登録する
mysql> GRANT ALL PRIVILEGES ON *.* TO newuser@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO newuser@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

1つ目のSQLで、どのホストからも接続出来るように設定(MyODBC利用時など)
2つ目のSQLで、localhostからの接続を可能に。
localhostからのみの接続(使用)に制限する場合は、1つ目は実行しないこと。

  • 通常のデータ操作が行えるユーザを登録する
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON [database].* TO [newuser]@localhost IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
  • ユーザの削除[delete構文]
mysql> DELETE FROM mysql.user WHERE user='deleteuser' and host='hostname';
mysql> FLUSH PRIVILEGES;
  • ユーザの削除[drop user構文]
mysql> DROP USER [deleteuser];
  • パスワードを設定[set password構文]

password()によって暗号化したパスワードをセット

mysql> SET PASSWORD FOR [existuser]@"%" = PASSWORD('password');