カスタム検索
このエントリーをはてなブックマークに追加
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

MySQLのユーザ管理の話題

Modified: 3 November 2004


MySQLのユーザに関する基本知識
ユーザ登録の方法


 MySQLのユーザに関する基本知識 

MySQLユーザは、ユーザー名とホスト名のペアです。

具体的には、"root@webserver"のような形式で、前半の"root"がユーザ名で、"webserver"がホスト名です。

インストール直後は、以下の4つのユーザが登録されています。

+-----------+---------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
| Host      | User    | Password         | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv |
+-----------+---------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
| localhost | root    |                  | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          |
| dbserver  | root    |                  | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          |
| localhost |         |                  | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          |
| dbserver  |         |                  | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          |
+-----------+---------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+

"localhost" は、UNIXソケットでの接続を意味します。

"dbserver" は、MySQLをインストールしているサーバー自身のホスト名です。

ユーザ名のないユーザは、どんなユーザ名でも接続できるユーザで、匿名ユーザといいます。

root@localhost UNIXソケットで接続できるスーパーユーザ
root@dbserver TCP/IPソケットで接続できるスーパーユーザ
@localhost UNIXソケットで接続できる匿名ユーザ(どんなユーザでも接続可能なユーザ)
@dbserver TCP/IPソケットで接続できる匿名ユーザ(どんなユーザでも接続可能なユーザ)

2つの匿名ユーザが登録されているので、MySQLをインストールしているサーバーからは、UNIXソケットでもTCP/IPソケットでも、どんなユーザでもMySQLに接続できます。しかし、すべての権限が"N"(なし)になっていますので、接続できるだけでなにもできません。

パスワードは登録されていませんので、実際に使う場合は、設定しておくべきです。

外部サーバーのホスト名やユーザが登録されていませんので、外部からは接続できません。

ユーザ名だけのユーザは、どのホストからでも接続できるユーザです。以下のようにホスト名のところには、"%" が登録されます。"@localhost" が登録されているをそれが優先されるので、ユーザ名だけのユーザは、UNIXソケットから接続できません。

| %         | tomo    |                  | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          |

Shellから、MySQLに、ユーザ名だけで接続を試みると、UNIXソケットの接続を意味することから、"@localhost" をくっつけて接続したものとみなされます。


 ユーザ登録の方法 

ユーザ登録は、GRANT文で権限の範囲設定と同時に行います。

mysql> grant usage on *.* to user-name@host identified by 'password';

"usage"は、なんの権利も与えないという意味です。とりあえずユーザのみ登録しておき、後で権限を設定するという場合に指定します。"all"を指定すると、すべての権限が与えられます。

"*.*"は、すべてのデータベースのすべてのテーブルの意味です。前半の"*"は、データベース名、後半の"*"は、テーブル名です。

"user-name@host " は、ユーザ+ホスト名で指定します。

"password" は、ユーザのパスワードです。

 パスワードを設定する方法

mysql> set password for user-name@host = password('password');

接続しているユーザのパスワードの設定や変更は、以下のコマンドで行います。

mysql> set password = password('password');

To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)line.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)
カスタム検索



このエントリーをはてなブックマークに追加