[メモ] MySQLユーザの接続元をサブネットで指定する

検証してないけど細かい制御はできないっぽい

grant all privileges on *.* to hoge@'192.168.10.0/255.255.255.0'; 


CIDRでも実行できるけど、これだと繋がらない。

grant all privileges on *.* to hoge@'192.168.10.0/24'; 

MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.2.4 アクセス制御、ステージ 1: 接続の検証

Contact MySQL | Login | Register ユーザーが MySQL サーバーに接続しようとすると、サーバーはユーザーの ID と、正しいパスワードを指定することでユーザーが自分の ID を検証できるかどうかに基づいて、接続を受け入れるか拒否します。できない場合、サーバーはアクセスを完全に拒否します。それ以外の場合、サーバーは接続を受け入れてステージ 2 に進み、リクエストを待機します。 ユーザーの ID は 2 つの部分の情報に基づきます。 接続元のクライアントホスト MySQL ユーザー名 ID チェックは、user テーブルの 3 つのスコープカラム (Host、User、Password) を使用して実施されます。サーバーは、一部の user テーブル行の Host および User カラムがクライアントホスト名およびユーザー名と一致し、その行に指定されているパスワードがクライアントから提供された場合のみ、接続を受け入れます。許容可能な Host および User 値についてのルールは、「アカウント名の指定」にあります。 User カラム値がブランクでない場合、入接続のユーザー名は正確に一致する必要があります。User 値がブランクの場合、これはすべてのユーザー名と一致します。入接続と一致する user テーブル行のユーザー名がブランクである場合、ユーザーはクライアントが実際に指定した名前を持つユーザーでなく、名前のない匿名ユーザーとみなされます。つまり、接続期間中の (つまりステージ 2 での) 今後のすべてのアクセスチェックでブランクのユーザー名が使用されることを意味します。 Password カラムはブランクにできます。これはワイルドカードではなく、あらゆるパスワードが一致するという意味ではありません。これは、ユーザーはパスワードを指定せずに接続しなければならないことを意味します。サーバーがプラグインを使用してクライアントを認証する場合

dev.mysql.com

""" ネットマスクは、8、16、24、または 32 ビットのアドレスを使用するようサーバーに指示するためにのみ使用できます。例:

192.0.0.0/255.0.0.0: 192 のクラス A ネットワーク上のすべてのホスト

192.168.0.0/255.255.0.0: 192.168 のクラス B ネットワーク上のすべてのホスト

192.168.1.0/255.255.255.0: 192.168.1 のクラス C ネットワーク上のすべてのホスト

192.168.1.1: この特定の IP アドレスを持つホストのみ

次のネットマスクは 28 ビットをマスクしますが、28 は 8 の倍数でないため機能しません。

192.168.0.1/255.255.255.240 """

MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.2.3 アカウント名の指定

Contact MySQL | Login | Register MySQL アカウント名はユーザー名とホスト名で構成されます。これにより、別々のホストから接続可能な同じ名前を持つユーザーのためのアカウントを作成できます。このセクションでは、特殊な値やワイルドカードルールを含む、アカウント名の記述方法について説明します。 CREATE USER、GRANT、SET PASSWORD などの SQL ステートメントでは、次のルールを使用してアカウント名を記述してください。 アカウント名の構文は 'user_name'@'host_name' です。 ユーザー名のみで構成されるアカウント名は、'user_name'@'%' と同等です。たとえば、'me' は 'me'@'%' と同等です。 ユーザー名およびホスト名は、それらが引用符なしの識別子として有効な場合、引用する必要はありません。引用符が必要なのは、user_name 文字列が特殊文字 (「-」 など) を含んでいたり、host_name 文字列が特殊文字またはワイルドカード文字 (「%」 など) を含んでいたりする場合で、たとえば 'test-user'@'%.com' のようになります。 ユーザー名およびホスト名は、逆引用符 (「`」)、単一引用符 (「'」)、または二重引用符 (「"」) のいずれかを使用して、識別子または文字列として引用符で囲みます。 ユーザー名およびホスト名の部分が引用符で囲まれる場合、別々に囲んでください。つまり、'me'@'localhost' と記述し、'me@localhost' とは記述しません。後者は 'me@localhost'@'%' と解釈されます。 CURRENT_USER または CURRENT_USER() 関数への参照は、現行クライアントのユーザー名およびホスト名の文字を指定することと同等

dev.mysql.com

0コメント

  • 1000 / 1000