webdb1というデータベースに接続可能なhogeというユーザ(パスワードはfuga)を追加する
mysql> grant all privileges on webdb1.* to hoge identified by 'fuga'; Query OK, 0 rows affected (0.00 sec)
このユーザはリモートからも接続可能みたいですね。ただしwebdb1というデータベースのみ。
mysql> grant all privileges on webdb1.* to hoge identified by 'hogehoge'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on webdb2.* to hoge identified by 'hogehoge'; Query OK, 0 rows affected (0.00 sec)
とやっていけば、複数のデータベース(webdb1,webdb2)にアクセスできるようになる模様。
>mysql -u root mysql mysql> use mysql; Database changed mysql> select * from user; +-------------+------+----------+-------------+-------------+--------------+------------+ 〜 | Host | User | Password | Select_priv | Insert_priv | Update_priv | Grant_priv | 〜 +-------------+------+----------+-------------+-------------+--------------+------------+ 〜 | localhost | root | | Y | Y | Y | Y | 〜 | hoge18121 | root | | Y | Y | Y | Y | 〜 | localhost | | | N | N | N | N | 〜 | hoge18121 | | | N | N | N | N | 〜 +-------------+------+----------+-------------+-------------+--------------+------------+ 〜 4 rows in set (0.01 sec) mysql>
他にも以下のコマンドで権限が参照可能みたいです。
mysql> show grants for hoge; +-----------------------------------------------------------------------------------------------------+ | Grants for hoge@% | +-----------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'hoge'@'%' IDENTIFIED BY PASSWORD 'xxx' | | GRANT ALL PRIVILEGES ON `webdb1`.* TO 'hoge'@'%' | | GRANT ALL PRIVILEGES ON `webdb2`.* TO 'hoge'@'%' | +-----------------------------------------------------------------------------------------------------+ 3 rows in set (0.01 sec) mysql>
たとえば
mysql> show grants for hoge; +-----------------------------------------------------------------------------------------------------+ | Grants for hoge@% | +-----------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'hoge'@'%' IDENTIFIED BY PASSWORD 'xxx' | | GRANT ALL PRIVILEGES ON `webdb1`.* TO 'hoge'@'%' | | GRANT ALL PRIVILEGES ON `webdb2`.* TO 'hoge'@'%' | +-----------------------------------------------------------------------------------------------------+ 3 rows in set (0.01 sec)
の場合
revoke all on webdb1.* from hoge; revoke all on webdb2.* from hoge;
これで各データベースへの権限情報がなくなりました。あとはユーザの削除です。
mysql> drop user hoge; Query OK, 0 rows affected (0.00 sec) mysql> show grants for hoge; ERROR 1141 (42000): There is no such grant defined for user 'hoge' on host '%' mysql>
以上で削除されました。ところでMySQL5.0で drop user hoge; したら全ての権限情報も削除されました。drop userだけでいいのかなあ??
http://www.javadrive.jp/mysql/user/index6.html
この記事は
現在のアクセス:17332