MYSQLのユーザ関連コマンドのついて紹介しています。
目次
ユーザの作成
ユーザ名は半角英数の16文字までです。
構文
GRANT権限 ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
全ての権限を与えた場合
ALL PRIVILEGES =全ての権限を与える
WITH GRANT OPTION =権限の書き換えを許可する
使用例
mysql> GRANT ALL PRIVILEGES ON *.* TO sasuke IDENTIFIED BY 'aaa' WITH GRANT OPTION; Query OK, 0 rows affected (0.03 sec)
一部権限、SELECT,INSERTのみ与えた場合
使用例
mysql> GRANT INSERT,SELECT ON *.* TO sasuke IDENTIFIED BY 'pass'; Query OK, 0 rows affected (0.00 sec)
ユーザの確認
ユーザの管理はMySQLデータベースの「user」テーブルで管理を行っています。
そのテーブルを参照することでユーザの確認が出来ます。
使用例
mysql> SELECT host,user FROM mysql.user; +-----------+--------+ | host | user | +-----------+--------+ | % | sasuke | | localhost | root | +-----------+--------+ 2 rows in set (0.00 sec)
ユーザの権限の確認をする場合は以下のコマンドを使用します。
使用例
mysql> SHOW GRANTS FOR ziro; +--------------------------------------------------------------+ | Grants for ziro@% | +--------------------------------------------------------------+ | GRANT SELECT, INSERT ON *.* TO 'ziro'@'%' ・・・長いので省略 +--------------------------------------------------------------- 1 row in set (0.00 sec)
パスワードの変更
パスワードの変更コマンドは**などで伏せられていないので見られないように注意しましょう。
構文
SET PASSWORD FOR ユーザ名@"ホスト名"=password('変更後のパスワード');
使用例
mysql> SET PASSWORD FOR root@"%"=PASSWORD('pass'); Query OK, 0 rows affected (0.00 sec)
ユーザの削除
ユーザの管理はMySQLデータベースの「user」テーブルで管理を行っているので、
そのテーブルからレコードを消すことでユーザを削除できます。
構文
DELETE FROM mysql.user WHERE user='ユーザ名';
使用例
mysql> DELETE FROM mysql.user WHERE user='sasuke'; Query OK, 1 row affected (0.00 sec) //ユーザの確認 mysql> SELECT host,user FROM mysql.user; +-----------+------+ | host | user | +-----------+------+ | localhost | root | +-----------+------+ 1 row in set (0.01 sec)
以下のコマンドで権限も削除する必要があります。
//権限の削除 mysql> REVOKE ALL PRIVILEGES ON * . * FROM sasuke; Query OK, 0 rows affected (0.00 sec) //権限の再読み込み mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)