無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.6 セキュリティ問題 :: 4.6.5 ユーザによる MySQL の実行
« 4.6.4 LOAD DATA LOCAL のセキュリティ関連事項

4.7 MySQL アクセス権限システム »
Section Navigation      [Toggle]
  • 4.6 セキュリティ問題
  • 4.6.1 セキュリティ ガイドライン
  • 4.6.2 MySQL のクラッカー対策
  • 4.6.3 セキュリティ関連の mysqld オプション
  • 4.6.4 LOAD DATA LOCAL のセキュリティ関連事項
  • 4.6.5 ユーザによる MySQL の実行

4.6.5. ユーザによる MySQL の実行

Windows 環境では、通常のユーザ アカウントで、Windows サービスとしてサーバを実行できます。

Unix 環境では、MySQL サーバの mysqld をどのユーザでも起動できます。しかし、セキュリティ面への配慮から、Unix root ユーザでサーバを実行することは推奨していません。mysqld を変更し、普通の権限なし Unix ユーザ、user_name で実行するには、次のことを行ないます。

  1. サーバ実行中であれば、終了する。(mysqladmin shutdown コマンドを使用)

  2. user_name でファイルへの読み書き込み権限がを与えるために、データベース ディレクトリとファイルを変更する。場合によっては、この作業を、Unix root ユーザで行なう必要がある。

    shell> chown -R user_name /path/to/mysql/datadir
    

    この作業を行なわない場合、user_name. で実行するときに、サーバからデータベースまたはテーブルへのアクセスができない。

    MySQL データ ディレクトリ内のディレクトリまたはファイルがシンボリック リンクである場合は、そのリンクに従い、ディレクトリとファイルを指しているところを変更する。場合によって、chown -R では、シンボリック リンクできないことがある。

  3. user_name というユーザでサーバを起動する。MySQL 3.22 以降を使用している場合は、別の方法として、Unix root で mysqld を起動し、--user=user_name オプションを使用する。mysqld が起動したら、接続を開始する前に、Unix ユーザの user_name に切り替えて、実行する。

  4. システムの起動時に自動的に任意のユーザでサーバを起動するには、user オプションを /etc/my.cnf オプション ファイルの [mysqld] グループに追加するか、サーバのデータ ディレクトリの my.cnf オプション ファイルを使用して、ユーザ名を指定する。

    [mysqld]
    user=user_name
    

Unix マシン自体が安全ではない場合、権限テーブルの MySQL root アカウントにパスワードを割り当てる。これをしないと、そのマシンのログイン アカウントを持つユーザであれば誰でも、 --user=root で mysql を実行でき、どのような操作をも行なうことができる。つまり、常に MySQL アカウントにパスワードを割り当てることが賢明である。そのサーバ ホストで別のログイン アカウントが存在する場合は特にそうである。項2.10. 「インストール後の設定とテスト」 を参照のこと。

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.