ユーザー名が である接続からのアクセスを許可するように MySQL サーバーを設定しようとしていますbob*
。* は任意の文字の組み合わせを表します。たとえば、usernames を持つ 3 つのアカウントがありますbob1, bob2, bobMaster
。しかしbob%
、ユーザー名として を入力すると、アクセスが拒否されたと表示されます。間違ったワイルドカードまたは間違った形式を使用していますか? ありがとうございます。
1 に答える
そんなことはできません。
MySQL は host_name でワイルドカードをサポートしていますが、user_name ではワイルドカードをサポートしていません。
マニュアルに記載されているように:
ユーザー名は、着信接続試行のユーザー名と文字どおり一致する空白以外の値か、任意のユーザー名と一致する空白値 (空の文字列) のいずれかです。ユーザー名が空白のアカウントは、匿名ユーザーです。SQL ステートメントで匿名ユーザーを指定するには、''@'localhost' のように引用符で囲まれた空のユーザー名部分を使用します。
ホスト名または IP アドレスの値には、ワイルドカード文字「%」および「_」を使用できます。これらは、LIKE 演算子で実行されるパターン マッチング操作と同じ意味を持ちます。たとえば、「%」というホスト値は任意のホスト名と一致しますが、「%.mysql.com」という値は mysql.com ドメイン内の任意のホストと一致します。「192.168.1.%」は、192.168.1 クラス C ネットワーク内の任意のホストに一致します。
ホスト値に IP ワイルドカード値を使用できるため (たとえば、'192.168.1.%' を使用してサブネット上のすべてのホストに一致させることができます)、誰かがホストに 192.168.1.somewhere.com という名前を付けて、この機能を悪用しようとする可能性があります。このような試みを阻止するために、MySQL は数字とドットで始まるホスト名の照合を許可しません。したがって、1.2.example.com のような名前のホストがある場合、その名前はアカウント名のホスト部分と決して一致しません。IP ワイルドカード値は、IP アドレスのみに一致し、ホスト名には一致しません。