BLOGTIMES
2015/09/18

MySQL でユーザーに SSL を強制する

  mysql 
このエントリーをはてなブックマークに追加

MySQL で接続時に SSL を強制させる方法を調べてたのでメモ。
すでにある username@% というユーザーを SSL 接続必須にするには以下のように指定します。

GRANT USAGE ON *.* TO 'username'@'%' REQUIRE SSL; -- SSLを強制する GRANT USAGE ON *.* TO 'username'@'%' REQUIRE NONE; -- SSLでなくても接続を許可する

GRANT USAGE ?

この GRANT 文のポイントになるのは、冒頭の GRANT USAGE の部分でしょうか。この USAGE の部分は本来、 ALL や SELECT などのユーザーの権限を表すものを列挙しなければならない部分ですが、この USAGE を使うと登録済みのユーザーの権限はそのままに、他のユーザーの属性を上書きすることができます。SSL の On / Off だけでなく、パスワードの変更などもこれでいけます。これまではバカ正直にユーザーを削除してから、再度登録しなおしたり、ユーザーの権限を調べて同じ権限を再指定したりしていたのですが、そんな必要はなかったのでした。

GRANT USAGE については MySQL のリファレンスに以下のような記載があるので、一度目を通しておくとよさそうです。

MySQL :: MySQL 5.1 Reference Manual :: 6.2.1 Privileges Provided by MySQL

The USAGE privilege specifier stands for “no privileges.” It is used at the global level with GRANT to modify account attributes such as resource limits or SSL characteristics without affecting existing account privileges.

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7905
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン