TOPサーバ構築・運用> MySQLの利用
わかる!MySQL
今からはじめるMySQL

第3回:MySQLを利用する

著者:野村総合研究所  松野 洋希   2007/8/6
1   2  3  次のページ
MySQLの利用

   「第2回:MySQLを使う準備」では、MySQLを利用する前に必要な事前設定について、実際のコマンド操作を交えながら解説しました。MySQLにログインしても、SQLコマンドの実行がほとんどなかったので、MySQLを使っているという実感があまりなかったのではないでしょうか。

   そこで今回は「MySQLを利用する」と題し、MySQLの設定と具体的に利用していく上で必ず知っておきたいコマンドについて、順を追って説明します。

MySQLのユーザと権限

   今までは、MySQLに接続する際に「root」という管理ユーザを使ってきました。MySQLを利用する場合には、rootユーザ以外に複数のユーザを作成することができます。これによって、ユーザごとに接続を制御したり、異なるアクセス権限を付与したりすることが可能になります。


ユーザの作成と権限付与

   MySQLでは、GRANTコマンドにより、ユーザの作成と権限付与を同時に実行することができます。このコマンドは少し複雑なので、細かく説明していきます。

GRANT 権限レベル ON データベース名.テーブル名 TO ユーザ名@ホスト名
IDENTIFIED BY [PASSWORD] パスワード;

   「権限レベル」に設定できる主な値は以下の通りです。この権限レベルの中から複数の権限レベルを指定する場合は、カンマ区切りで指定することができます。

設定値 付与される実行権限
ALL 全権限
CREATE データベース・テーブルの作成権限(CREATE DATABASE/CREATE TABLEコマンド)
CREATE USER ユーザの作成権限(CREATE USERコマンド)
DROP データベース・テーブルの削除権限(DROP DATABASE/DROP TABLEコマンド)
SELECT テーブルの参照権限(SELECTコマンド)
INSERT テーブルのレコード挿入権限(INSERTコマンド)
UPDATE テーブルのレコード更新権限(UPDATEコマンド)
DELETE テーブルのレコード削除権限(DELETE コマンド)
EXECUTE ファンクション・ストアドプロシージャの実行権限
SHOW DATABASES データベースの一覧取得権限(SHOW DATABASESコマンド)
SHUTDOWN MySQLのシャットダウン実行権限

表1:権限レベル

   「データベース名.テーブル名」では、権限の対象としたいデータベースやテーブルを限定することができます。すべてを指定したい場合は、「*」がワイルドカードになります。

   「ユーザ名@ホスト名」では、権限を付与するユーザを指定するのと同時に、アクセス可能なホスト名を指定することができます。ホスト名が指定された場合、そのホストからのアクセスしか許可されません。ホスト名でのワイルドカードは「%」および「_」を使用します。「%」は任意の複数文字、「_」は任意の1文字をあらわします。

   「パスワード」を指定する場合は、パスワード文字列を「'(シングルクォーテーション)」で囲う必要があります。また、IDENTIFIED〜以降は省略可能ですが、その場合はパスワードを持たないユーザが作成されますので注意が必要です。

実例
   mysql> GRANT SELECT ON mysql.* TO user@'%'  ← 1. 2. 3.
       -> IDENTIFIED BY 'user';         ← 4.
      Query OK, 0 rows affected (0.00 sec)

   上記の例では、全てのホストからログイン可能な「user」というユーザを作成しています。userユーザには、1.mysqlデータベースのすべてのテーブルに対して、2.SELECTの実行権限が与えられています。3. userユーザはどのホストからも接続することが可能です。4.ログインパスワードは「user」になります。

1   2  3  次のページ


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

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


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