Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


18.5.11.3 MySQL Cluster と MySQL のセキュリティー手順

このセクションでは、実行中の MySQL Cluster に適用される MySQL 標準セキュリティー手順について説明します。

一般に、MySQL をセキュアに実行するための標準手順は、MySQL Cluster の一部として実行している MySQL サーバーにも適用されます。なによりもまず、常に MySQL サーバーを mysql システムユーザーとして実行するようにしてください。これは、標準 (非クラスタ) 環境で実行している MySQL と違いはありません。mysql システムアカウントは、一意かつ明確に定義されるべきです。幸運にも、これは新しい MySQL インストールのデフォルトの動作です。次に示すようなシステムコマンドを使用すると、mysqld プロセスがシステムユーザー mysql として実行されていることを確認できます。

shell> ps aux | grep mysql
root     10467  0.0  0.1   3616  1380 pts/3    S    11:53   0:00 \
  /bin/sh ./mysqld_safe --ndbcluster --ndb-connectstring=localhost:1186
mysql    10512  0.2  2.5  58528 26636 pts/3    Sl   11:53   0:00 \
  /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql \
  --datadir=/usr/local/mysql/var --user=mysql --ndbcluster \
  --ndb-connectstring=localhost:1186 --pid-file=/usr/local/mysql/var/mothra.pid \
  --log-error=/usr/local/mysql/var/mothra.err
jon      10579  0.0  0.0   2736   688 pts/0    S+   11:54   0:00 grep mysql

mysqld プロセスが mysql 以外のユーザーとして実行されている場合は、それをすぐにシャットダウンしてから、mysql ユーザーとして再起動するようにしてください。このユーザーがシステム上に存在しない場合は、mysql ユーザーアカウントを作成して、このユーザーを mysql ユーザーグループに属するようにしてください。この場合、このシステム上の (mysqld--datadir オプションを使用して設定された) MySQL データディレクトリが mysql ユーザーによって所有されていること、および SQL ノードの my.cnf ファイルの [mysqld] セクションに user=mysql が含まれていることも確認するようにしてください。また、コマンド行で --user=mysql を付けて MySQL サーバープロセスを起動できますが、コマンド行オプションを使用することを忘れたために、意図せずに mysqld が別のユーザーとして実行されている可能性もあるため、my.cnf オプションを使用することをお勧めします。mysqld_safe 起動スクリプトを使用すると、MySQL が強制的に mysql ユーザーとして実行されます。

重要

絶対に mysqld をシステムの root ユーザーとして実行しないでください。これを行うと、システム上の任意のファイルが MySQL によって読み取られる可能性があるため、攻撃者によって MySQL が危険にさらされます。

前のセクションで説明したように (セクション18.5.11.2「MySQL Cluster と MySQL 権限」を参照してください)、常に、MySQL サーバーを実行したらすぐに、root パスワードを設定するようにしてください。また、デフォルトでインストールされている匿名ユーザーアカウントを削除するようにしてください。次のステートメントを使用すると、これらのタスクを実現できます。

shell> mysql -u root

mysql> UPDATE mysql.user
    ->     SET Password=PASSWORD('secure_password')
    ->     WHERE User='root';

mysql> DELETE FROM mysql.user
    ->     WHERE User='';

mysql> FLUSH PRIVILEGES;

DELETE ステートメントを実行する際は、WHERE 句を省略しないように注意してください。そうしないと、すべての MySQL ユーザーが削除される危険性があります。mysql.user テーブルを変更したら、その変更が即座に有効になるように、すぐに FLUSH PRIVILEGES ステートメントを実行してください。FLUSH PRIVILEGES を実行しなければ、次回サーバーを再起動するまで、変更が有効になりません。

注記

ndb_show_tablesndb_descndb_select_all などの多くの MySQL Cluster ユーティリティーは、認証なしでも動作し、テーブル名、スキーマ、およびデータを表示できます。デフォルトで、これらは Unix スタイルのシステムにアクセス権 wxr-xr-x (755) でインストールされます。これは、mysql/bin ディレクトリにアクセスできる任意のユーザーが実行できることを意味します。

これらのユーティリティーについての詳細は、セクション18.4「MySQL Cluster プログラム」を参照してください。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.