無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.8 MySQL ユーザ アカウント管理 :: 4.8.6 パスワードのセキュリティ
« 4.8.5 パスワードの設定

4.8.7 接続安全 »
Section Navigation      [Toggle]
  • 4.8 MySQL ユーザ アカウント管理
  • 4.8.1 MySQL ユーザ名とパスワード
  • 4.8.2 MySQL への新規ユーザの追加
  • 4.8.3 MySQL ユーザの削除
  • 4.8.4 ユーザ リソースの制限
  • 4.8.5 パスワードの設定
  • 4.8.6 パスワードのセキュリティ
  • 4.8.7 接続安全

4.8.6. パスワードのセキュリティ

user 権限テーブルへのアクセスを一般ユーザには与えてはいけません。

MySQL サーバに接続するクライアント プログラムを実行するときには、別のユーザにそのパスワードを知られない最大の努力をしてください。ここでは、クライアント プログラムを実行するときに指定するパスワードの使用方法とともに、それぞれに付随するリスクについて説明します。

  • コマンドラインで -pyour_pass または --password=your_pass などのオプションを使用する。

    shell> mysql -u francis -pfrank db_name
    

    この方法は簡単ですが、安全ではありません。ps などのシステム ステータス プログラムでパスワードが可視的になります。このようなプログラムは別のユーザがコマンドラインを呼び出す可能性があります。MySQL クライアントでは通常、初期シーケンス中にコマンドラインのパスワード引数をゼロで書き換えます。しかし、これには値が可視的になる微妙なインターバルがあります。SystemV Unix など、システムによっては、ps でパスワードが可視状態になる問題があるので、この方法はお勧めしません。

  • パスワード指定なしで、-p または --password オプションを使用する。(your_pass 値の指定を行なわない。)この場合、クライアントプログラムが端末からのパスワード入力を要求する。

    shell> mysql -u francis -p db_name
    Enter password: ********
    

    ‘*’ 文字はパスワードの入力場所です。パスワードは入力時には表示しません。

    コマンドラインからパスワードを指定するよりも、この方法でパスワードを入力する方が安全です。これは別のユーザに対して可視的ではありません。しかし、このパスワード入力方法は、相互的に実行するプログラムだけで使用することをお勧めします。相互的ではない場合に、スクリプトからクライアントを呼び出すと、端末からパスワードを入力することができません。システムによっては、スクリプトの最初のラインが、読み込んだパスワードが不正確になる場合があります。

  • オプション ファイルにパスワードを保存する。Unix 例:ホーム ディレクトリにある .my.cnf ファイルの [client] にパスワードをリストする。

    [client]
    password=your_pass
    

    .my.cnf にパスワードを保存する場合、ファイルを自分以外の誰からにもアクセスができないようにします。ファイルのアクセス モードを 400 または 600 に設定して確証します。

    shell> chmod 600 .my.cnf
    

    項3.3.2. 「オプションファイルの使用」で、オプション ファイルに関する記述を参照してください。

  • MYSQL_PWD 環境変数でパスワードを保存する。この方法で MySQL パスワードを指定することは、非常に危険 です。ps のバージョンによっては、実行プロセスの環境を表示するオプションがあるため、MYSQL_PWD でパスワードを設定すると、ps を実行している別のユーザに露呈することになります。ps がないシステムでも、処理環境を別のユーザに露呈する可能性があります。項2.14. 「環境変数」 を参照してください。

結論としては、クライアント プログラムのプロンプトでパスワード確認するか、セキュリティを確保したオプション ファイルに適切にパスワードを指定することが、最も安全な方法です。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.