10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国高级主任)- 26.8 mb
PDF (A4)- 26.8 mb


6.3.1ユ、ザ、名とパスワ、ド

MySQLでは,mysqlデ,タベ,スの用户テ,ブルにアカウントが格納されます。アカウントは,ユーザー名およびユーザーがサーバーに接続できるクライアントホスト(複数の場合あり)に関して定義されます。アカウントはパスワ,ドを持っている場合もあります。用户テブルでのアカウントの表示にいては,セクション6.2.2“権限システム付与テブル”を参照してください。MySQL 5.6では,認証プラグインがサポートされているため,アカウントは一部の外部認証方式を使用して認証できます。セクション6.3.7“プラガブル認証”を参照してください。

ユーザー名とパスワードがMySQLで使用される方法と,オペレーティングシステムで使用される方法との間には,いくつかの違いがあります。

  • MySQLで認証目的に使用されるユーザー名と,WindowsまたはUnixで使用されるユーザー名(ログイン名)とには,まったく関係がありません。Unixでは,ほとんどのMySQLクライアントがデフォルトで,現在のUnixユーザー名をMySQLユーザー名として使用してログインを試みますが,これは便宜上の目的に過ぎません。クラ电子邮箱アントプログラムでは,- uまたは——用户オプションを使用して任意のユーザー名を指定することが許可されているため,簡単にデフォルトをオーバーライドできます。これは,ユーザー名を使用すればだれでもサーバーへの接続を試みることができることを意味するため,すべてのMySQLアカウントがパスワードを持っていなければ,どのような方法でもデータベースをセキュアにすることはできません。パスワードを持っていないアカウントにユーザー名を指定するユーザーはだれでも,正常にサーバーに接続できます。

  • MySQLユ,ザ,名は,最大で16文字の長さまで指定できます。オペレーティングシステムのユーザー名は,MySQLユーザー名とは完全に無関係であるため,最大長が異なる可能性があります。たとえば,Unixユ,ザ,名は通常,8文字までに制限されています。

    警告

    MySQLサーバーおよびクライアントでは,MySQLユーザー名の長さの制限がハードコードされているため,mysqlデ,タベ,ス内のテ,ブル定義を変更してこれを回避しようとしても,効果がありません

    セクション4.4.7 "mysql_upgrade- MySQLテブルのチェックとアップグレド"で説明する手順を使用する以外は,どのような方法でもmysqlデ,タベ,ス内のテ,ブルは変更するべきではありません。その他の方法でMySQLのシステムテーブルを再定義しようとすると,未定義(および未サポート)の動作が発生します。

  • サ、バ、は(mysql.userテーブルに格納されたパスワードと照合する)MySQLネイティブ認証を使用してクライアント接続を認証する際に,用户テブルに格納されたMySQLパスワドを使用します。これらのパスワードと,オペレーティングシステムにログインするためのパスワードとには,まったく関係がありません。WindowsまたはUnixマシンにログWindowsンする際に使用される外部パスワードと,そのマシン上のMySQLサーバーにアクセスする際に使用されるパスワードとの間には,必要な関係はありません。

    サバがプラグンを使用してクラアントを認証する場合は,プラグンで実装されている認証方式で,用户テ,ブル内のパスワ,ドが使用される場合と,使用されない場合があります。この場合,MySQLサバへの認証を行う際に,外部パスワドも使用される可能性があります。

  • MySQLでは独自アルゴリズムを使用して,用户テ,ブルに格納されたパスワ,ドが暗号化されます。この暗号化は,密码()SQL関数で実装されたものと同じですが,Unixのログインプロセス時に使用されるものとは異なります。Unixのパスワ,ド暗号化は,加密()SQL関数で実装されたものと同じです。密码()および加密()関数にいては,セクション12.13“暗号化関数と圧縮関数”を参照してください。

    MySQLバージョン4.1以降では,旧バージョンよりも強固な認証方式が採用され,接続プロセス時のパスワード保護が改善されています。Tcp / ipパケットが盗聴されたり,mysqlデ,タベ,スが乗っ取られたりしてもセキュアです。(旧バ,ジョンでは,パスワ,ドが暗号化された形式で用户テーブルに格納されますが,MySQLサーバーに接続する際に,暗号化されたパスワード値を知っていることが利用される可能性があります)。セクション6.1.2.4 " MySQLでのパスワドハッシュ"では,パスワ,ドの暗号化に,いて詳細に説明します。

  • ユーザー名およびパスワードにASCII文字のみが含まれている場合は,文字セットの設定に関係なく,サーバーに接続できます。ユザ名またはパスワドにASCII文字以外が含まれているときに接続するには,クラアントはMYSQL_SET_CHARSET_NAMEオプションと引数として適切な文字セット名を指定して,mysql_options ()C API関数を呼び出すようにしてください。これにより,指定された文字セットを使用した認証が実行されます。それ以外の場合,サーバーのデフォルト文字セットが認証のデフォルトエンコーディングと同じでなければ,認証に失敗します。

    標準のMySQLクラescアントプログラムでは,先ほど説明したように,mysql_options ()が呼び出される——default-character-setオプションがサポ,トされています。さらに,セクション10.1.4“接続文字セットおよび照合順序”で説明したように,文字セットの自動検出もサポ,トされています。C APIに基づいていないコネクタを使用するプログラムでは,mysql_options ()と同等のものがコネクタで提供されている場合があり,それを代わりに使用できます。コネクタのドキュメントを確認してください。

    前述の注は,クラucs2utf16,およびutf32には適用されません。

MySQLを。これらのアカウントの名前およびアクセス権限にいては,セクション2.10.2 "最初のMySQLアカウントのセキュリティ設定"で説明されています。ここでは,パスワ,ドを割り当てる方法に,いても説明されています。そのあと,通常は创建用户格兰特,および撤销などのステ,トメントを使用して,MySQLアカウントを設定,変更,および削除します。セクション13.7.1“アカウント管理ステ,トメント”を参照してください。

コマンド行クライアントを使用してMySQLサーバーに接続する場合は,使用するアカウントでの必要に応じて,ユーザー名とパスワードを指定します。

Shell > mysql——user=monty——password=密码db_name

短いオプションを好む場合は,コマンドは次のようになります。

Shell > mysql -u monty -p密码db_name

- pオプションとそれに続くパスワ,ド値との間には,空白文字を入れないでください。

コマンド行で——密码または- pオプションに続く密码値を省略した場合は,値を1指定するように求めるプロンプトがクラアントに表示されます。

コマンド行でパスワ,ドを指定することは,セキュアでないと考えるべきです。セクション6.1.2.1 "パスワドセキュリティのためのエンドユザガドラン"を参照してください。オプションファ@ @ルを使用すれば,コマンド行でパスワ@ @ドを指定することを回避できます。

ユ,ザ,名,パスワ,ド,およびその他の接続パラメ,タの指定に関する追加情報に,いては,セクション4.2.2 " MySQLサバへの接続"を参照してください。