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


MySQL 5.6 リファレンスマニュアル  /  ...  /  権限変更が有効化される時期

6.2.6 権限変更が有効化される時期

mysqld を起動すると、すべての付与テーブルの内容がメモリーに読み取られます。インメモリーテーブルは、その時点でアクセス制御に有効になります。

ユーザーが GRANTREVOKESET PASSWORDRENAME USER などのアカウント管理ステートメントを使用して、付与テーブルを間接的に変更した場合、サーバーはそれらの変更を認識し、再びすぐに付与テーブルをメモリーにロードします。

INSERTUPDATEDELETE などのステートメントを使用して、付与テーブルを直接変更する場合、サーバーを再起動するか、テーブルをリロードするようサーバーに指示するまで、変更内容は権限チェックに影響しません。付与テーブルを直接変更したが、それらをリロードし忘れた場合、サーバーを再起動するまで変更は影響しません。このため、変更したのに違いが現れないことを不思議に思うことがあるかもしれません。

付与テーブルをリロードするようサーバーに指示するには、フラッシュ権限操作を実行します。これは、FLUSH PRIVILEGES ステートメントを発行するか、mysqladmin flush-privileges または mysqladmin reload コマンドを実行することによって行うことができます。

付与テーブルのリロードは、既存のクライアント接続のための権限に次のような影響を及ぼします。

  • テーブルおよびカラムの権限の変更は、クライアントの次回のリクエストで有効になります。

  • データベース権限の変更は、クライアントが次回 USE db_name ステートメントを実行したときに有効になります。

    注記

    クライアントアプリケーションがデータベース名をキャッシュしている場合があるため、この影響は、実際に別のデータベースに変更したり、権限をフラッシュしたりしないかぎり、クライアントアプリケーションに認識されないことがあります。

  • 接続済みクライアントについてのグローバルな権限およびパスワードは影響されません。これらの変更は、後続の接続についてのみ有効になります。

サーバーが --skip-grant-tables オプションを指定して起動された場合、サーバーは付与テーブルを読み取ったりアクセス制御を実装したりしません。すべてのユーザーが接続してあらゆることが可能であるため、セキュアではありません。そのように起動されたサーバーが、テーブルを読み取ってアクセスチェックを有効にするようにするには、権限をフラッシュします。


User Comments
Sign Up Login You must be logged in to post a comment.