和田さんの仕事用に wadaya というデータベースを MySQL 上に作成し、そのデータベースの利用ユーザーとして wadaya を設定する。(ちなみに、Windows2000 Server 上の mysql コマンドにて設定)
まず、wadaya というユーザーを、「すべての DB に対して、何の権限も無し」という形で作成。
匿名ユーザーが残っていると、ローカルホストから接続する wadaya(wadaya@localhost)と、他のサーバから接続する wadaya を二つ登録しないといけないが、うちの MySQL では匿名ユーザーは削除しているので、wadaya(@ 以降無し)だけを登録すれば大丈夫。
だが、今回は両方のユーザーを登録してみる。(深い意味無し)
C:\share\Apache2\cgi-bin>\mysql\bin\mysql -u root -p mysql
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14810 to server version: 4.0.21-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT Host,User,Password FROM user;
+-----------+--------+------------------+
| Host | User | Password |
+-----------+--------+------------------+
| localhost | root | 02444a6e17b4d399 |
| build | root | 02444a6e17b4d399 |
+-----------+--------+------------------+
2 rows in set (0.00 sec)
mysql> GRANT USAGE ON *.* TO wadaya@localhost IDENTIFIED BY 'hogepw';
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT Host,User,Password FROM user;
+-----------+--------+------------------+
| Host | User | Password |
+-----------+--------+------------------+
| localhost | root | 02444a6e17b4d399 |
| build | root | 02444a6e17b4d399 |
| localhost | wadaya | 0c351e775ff1ab88 |
+-----------+--------+------------------+
3 rows in set (0.00 sec)
mysql> GRANT USAGE ON *.* TO wadaya IDENTIFIED BY 'hogepw';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT Host,User,Password FROM user;
+-----------+--------+------------------+
| Host | User | Password |
+-----------+--------+------------------+
| localhost | root | 02444a6e17b4d399 |
| build | root | 02444a6e17b4d399 |
| localhost | wadaya | 0c351e775ff1ab88 |
| % | wadaya | 0c351e775ff1ab88 |
+-----------+--------+------------------+
4 rows in set (0.00 sec)
これで、「何の権限も持たないユーザー」が登録された。
次に、このユーザーにデータベース 'wadaya' だけは好き勝手できる権限を与える。
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| wadaya |
+----------+
3 rows in set (0.00 sec)
mysql> GRANT ALL ON wadaya.* TO wadaya@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON wadaya.* TO wadaya;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR wadaya@localhost;
+--------------------------------------------------------------------------------------+
| Grants for wadaya@localhost |
+--------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wadaya'@'localhost' IDENTIFIED BY PASSWORD '0c351e775ff1ab88' |
| GRANT ALL PRIVILEGES ON `wadaya`.* TO 'wadaya'@'localhost' |
+--------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> SHOW GRANTS FOR wadaya;
+------------------------------------------------------------------------------+
| Grants for wadaya@% |
+------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wadaya'@'%' IDENTIFIED BY PASSWORD '0c351e775ff1ab88' |
| GRANT ALL PRIVILEGES ON `wadaya`.* TO 'wadaya'@'%' |
+------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> \q
Bye
これで、ユーザー wadaya はデータベース wadaya にアクセスできるはず。
C:\share\Apache2\cgi-bin>\mysql\bin\mysql -u wadaya -p wadaya
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15233 to server version: 4.0.21-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| test |
| wadaya |
+----------+
2 rows in set (0.00 sec)
mysql> SHOW TABLES;
+------------------+
| Tables_in_wadaya |
+------------------+
| m_client |
| m_job |
+------------------+
2 rows in set (0.00 sec)
mysql> \q
Bye
ばっちりじゃん。
他のホストからもアクセスできるか確認。
FreeBSD 機から wadaya に wadaya でアクセスしてみる。:-)
serv2# which mysql
/usr/local/bin/mysql
serv2# mysql -h database.netandfield.com -u wadaya -p wadaya
Enter password:<パスワード入力>
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15884 to server version: 4.0.21-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW TABLES;
+------------------+
| Tables_in_wadaya |
+------------------+
| m_client |
| m_job |
+------------------+
2 rows in set (0.01 sec)
mysql> SELECT * FROM m_client;
+----------+------------------------------+
| 取引先ID | 名称 |
+----------+------------------------------+
| 1001 | 株式会社中国豆腐販売 |
+----------+------------------------------+
1 row in set (0.01 sec)
mysql> SELECT * FROM m_job;
Empty set (0.01 sec)
mysql> \q
Bye
他のホストからもちゃんと接続できた!!文句なし!!
|
|