2012年8月10日金曜日

4.2 MySQLの設定


MySQLに接続して利用するには、あらかじめデータベースユーザ
ーを作成しておく必要があります。デフォルトでは、管理者権限を
持つrootユーザーが用意されています。

4.2.1 新規データベースユーザーの作成

MySQLをインストールした直後の状態では、データベースユーザーはroot
ユーザーのみが登録されています。このrootユーザーは、システムアカウン
トのrootユーザーとは関係ないので注意してください。一般的に、MySQL
を利用する場合は、専用のユーザーを作成して利用します。管理者権限のあ
るrootユーザーを利用し続けることは、セキュリティ上好ましくないからで
す。

ユーザーの作成は、以下の書式で行います。

CREATE USER 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パ
スワード';

次の例では、studentという名前のユーザーを作成しています。パスワード
は「himitu」を指定しています。

mysql> CREATE USER 'student'@'localhost'
IDENTIFIED BY 'himitu';

ただし、CREATE USERコマンドで作成されたユーザーには権限が設定され
ていないので、別途権限を設定する必要があります。そのため、GRANTコ
マンドを使って、ユーザーの作成と権限の設定を同時に行うのが一般的です。

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

次の例では、testdbデータベースのすべてのテーブルに対し、すべての権限
を与えてstudentユーザーを作成します。

mysql> GRANT ALL ON testdb.* TO 'student'@
'localhost' IDENTIFIED BY 'himitu';

データベースを指定しない場合は、ワイルドカード「*」を使ってください。
次の例では、すべてのデータベースに対して、SELECTコマンドとUPDATE
コマンドが利用できるユーザーstudentを作成します。

mysql> GRANT SELECT,UPDATE ON *.* TO 'student'@
'localhost' IDENTIFIED BY 'himitu';


なお、他のホストからネットワーク経由で利用したい場合は、ホスト名欄に
「%」を指定してください。

mysql> GRANT ALL ON testdb.* TO 'student'@'%'
IDENTIFIED BY 'himitu';

この場合、localhostからは接続できなくなるので、student@localhostでの
設定も別途必要です。

4.2.2 データベースユーザーへの権限設定


GRANTコマンドは、データベースユーザーの権限を設定するコマンドです。

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

※ユーザーが存在しないと、そのユーザーを作成します。


権限には、表に示すような権限を指定することができます。

mysql> CREATE USER 'student'@'localhost'
IDENTIFIED BY 'himitu';



















0 件のコメント:

コメントを投稿