Top / MySQL / ユーザ管理

ユーザ追加

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


この記事は

選択肢 投票
おもしろかった 10  
そうでもない 0  

Top / MySQL / ユーザ管理

現在のアクセス:12844


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-11-30 (火) 10:30:05 (2909d)