TOPサーバ構築・運用> ユーザ作成と権限付与の動作確認
わかる!MySQL
今からはじめるMySQL

第3回:MySQLを利用する

著者:野村総合研究所  松野 洋希   2007/8/6
前のページ  1  2  3  次のページ
ユーザ作成と権限付与の動作確認

   では早速、上記で作成したuserユーザでMySQLにログインし、権限が有効になっているかどうか確認してみましょう。
$ mysql -u user -p
Enter password:

   userユーザでログインを行う場合、「-p」オプションを指定します。このオプションを付加することで、パスワードの入力を促されます。正しいパスワード(ここでは、'user')を入力すると、正常にログインが完了します。

   なお、対話型でログインする際は「mysql -u user -p」でも実行できますが、バッチなどで利用する際には「mysql -u user -puser」で作業を行います。このとき「-p」とパスワードの間にスペースを入れないように特に注意してください。コマンドを「mysql -u user -p user」と指定すると、パスワードが" user"(スペースから始まる5文字)と認識されてしまいます。

   userユーザは、mysqlデータベースのすべてに対してSELECTの権限を持っているので、実際にその操作を行ってみます。

   MySQLのユーザ情報テーブルであるmysqlデータベース内にあるuserテーブルのホスト名(host)とユーザ(user)、パスワード(password)のカラムを参照してみます。

$ mysql> SELECT host, user, password FROM mysql.user;
+-----------------------+-------+-------------------------------------------+
| host                  | user  | password                                  |
+-----------------------+-------+-------------------------------------------+
| localhost             | root  |                                           |
| 127.0.0.1             | root  |                                           |
| %                     | user  | *D5D9F81F5542DE067FFF5FF7A4CA4BDD322C578F |
+-----------------------+-------+-------------------------------------------+
3 rows in set (0.00 sec)

   確かにuserテーブルのすべてのカラムが参照できることがわかります。

   では今度は、userユーザがuserテーブルをUPDATEしようとした場合は、どうなるか確認してみましょう。

$ mysql> UPDATE mysql.user SET password='password' WHERE user='user';
ERROR 1142 (42000): UPDATE command denied to user 'user'@'localhost' for table 'user'

   userユーザは、UPDATEコマンドは許可されていないという旨のメッセージが表示されました。先ほどGRANTコマンドで設定した権限が有効になっていることが確認できます。


MySQLの基本的なコマンド

   ここからはMySQLを使う上で必ず覚えておきたいコマンドを列挙していきます。

   これらのコマンドはMySQL上に存在するデータベース、テーブル、カラムの一覧を取得したり、実行中プロセスの情報を取得する基本的なコマンドになります。いずれも、コマンドを実行するユーザに対し、最初のGRANTコマンドにより権限レベルの指定が必要です。


データベース一覧取得コマンド

SHOW DATABASES [LIKE パターン];

   MySQL上に作成されているデータベースの一覧を取得します。権限によっては、表示されないデータベースもあります。「LIKE」に続けてパターンを入力すれば、表示するデータベースを絞り込むことができます。パターンにはワイルドカードの「%」および「_」を使用できます。


データベース選択コマンド

USE データベース名;

   MySQL上に作成されているデータベースを選択します。USEコマンドを実行しておくことにより、SELECT文などでテーブルを指定する際に、「データベース名.テーブル名」という記述を「テーブル名」だけにすることができます。

   逆にいえば、USEコマンドを実行するまでは、必ず「データベース名.テーブル名」という指定が必要になります。


テーブル一覧取得コマンド

SHOW TABLES [LIKE パターン];

   データベース内に存在するテーブルの一覧を取得します。権限によっては、表示されないテーブルもあります。SHOW TABLESコマンドは、事前にUSEコマンドによって、データベースを選択しておく必要があります。「LIKE」に続けてパターンを入力すれば、表示するテーブルを絞り込むことができます。


カラム情報取得

DESCRIBE [データベース名.]テーブル名 [パターン];

   テーブル内のカラムの情報を取得します。このコマンドを実行する際には、USEコマンドによってデータベースを選択しておくか、「データベース名.」を指定する必要があります。「パターン」を指定した場合、表示するカラムを絞り込むことができます。なお、このコマンドでは、LIKEはつけません。


実行プロセス取得コマンド

SHOW [FULL] PROCESSLIST;

   現在MySQL上で実行されているプロセスの一覧を表示します。「FULL」オプションを指定した場合、実行されているコマンドやSQLを完全な形で表示します。接続しているクライアント数や長時間実行されているSQL、ロックが掛かってしまっているSQLなどをこのコマンドから確認することができます。

前のページ  1  2  3  次のページ


株式会社野村総合研究所 松野 洋希
著者プロフィール
株式会社野村総合研究所  松野 洋希
情報技術本部  オープンソースソリューションセンター
大規模コンシューマ向けWebサイトのインフラ構築にあたり、オープンソースのフレームワークやミドルウェアの検証・評価に携わる。2003年、日本人としては初めてJBoss社の認定コンサルタントに合格。現在は、金融系システム基盤へオープンソースソフトウェアを適用するために設計・構築を行っている。

NRIオープンソースサポートサービス OpenStandia
http://www.nri-aitd.com/openstandia/


INDEX
第3回:MySQLを利用する
  MySQLの利用
ユーザ作成と権限付与の動作確認
  MySQLの具体的な使用例