MySQL でのユーザ名およびパスワードの使用法と、Unix および Windows での使用法にはいくつかの相違点があります。
MySQL
で認証目的に使用するパスワードは、Unix
ユーザ名(ログイン名)や Windows
ユーザ名とは関係ない。ほとんどの MySQL
クライアントはデフォルトで、現在の Unix
ユーザ名を MySQL
ユーザ名としてログインしようとするが、これは利便性のためだけである。
クライアントプログラムで、-u
オプションまたは --user
オプションにより別の名前を指定することが可能である。これは、すべての
MySQL
ユーザ名にパスワードを設定しないと、データベースを安全に保てないことを意味する。パスワードを設定しなければ、だれでも任意の名前でサーバへの接続を試みることができ、パスワードのない名前を指定すれば接続に成功してしまう。
MySQL ユーザ名には最大 16 文字まで使用できるが、Unix ユーザ名は通常 8 文字まで。
MySQL パスワードは、Unix パスワードと関係ない。Unix マシンにログインするパスワードと、そのマシンでデータベースにアクセスするためのパスワードには関連性がない。
MySQL では、Unix
ログインプロセスで使用されるアルゴリズムとは別のアルゴリズムで、パスワードを暗号化する。PASSWORD()
関数および ENCRYPT()
関数の詳細については、項6.3.6.2. 「その他の各種関数」
を参照のこと。注意: パスワードが '暗号化'
されて格納されていても、その '暗号化'
されたパスワードを知るだけで MySQL
サーバに接続できる。 バージョン 4.1
より、MySQL
は従来とは異なるパスワードとログインメカニズムを採用しており、TCP/IP
パケットがスニフされたり、mysql
データベースがキャプチャされた場合でもセキュリティを保持できるようになっている。
MySQL
ユーザおよびその権限は通常、GRANT
コマンドで作成します。 See 項4.4.1. 「GRANT
および REVOKE
の構文」。
MySQL
サーバにコマンドラインクライアントでログインする場合は、--password=your-password
でパスワードを指定してください。 See
項4.3.8. 「MySQL サーバへの接続」。
mysql --user=monty --password=guess database_name
クライアントにパスワードを要求させたい場合には、引数なしで
--password
を使用します。
mysql --user=monty --password database_name
または次の短い形式
mysql -u monty -p database_name
注意: 上記の例で、パスワードが 'database_name' なわけではありません。
-p
オプションを使用してパスワードを指定するには、以下のように行います。
mysql -u monty -pguess database_name
システムによっては、MySQL がパスワードを要求する際のライブラリコールにより、自動的にパスワードが 8 文字に切り詰められます。MySQL の内部では、パスワード長に制限はありません。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.