49

最初のコマンドでユーザーを作成しましたが、ローカルホスト(Linux)経由でログオンできません。このリンクmysqldocは、同じ名前で2番目のユーザーを作成する必要があることを示していますが、コマンドの2番目のブロックの構文を使用しています。

mysql> CREATE USER 'myuser'@'%' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON my_upload.* TO 'myuser'@'%' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)

だから私はそれを以下のように試しました、そしてそれは確かにうまくいきました。しかし、これら2人の別々のユーザーですか?一方のpwを変更した場合、もう一方は同期されますか、それとも本当に別々のユーザーですか?

mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON my_upload.* TO  'myuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
4

4 に答える 4

46

User@%すべての場所からのアクセスを許可します。 User@localhostローカルホストからのアクセスのみを許可します。彼らは2つの異なるパスワードを持つ2人の異なるユーザーです(ただし、同じパスワードに設定することはできますが、一方のパスワードを更新すると、もう一方は自動更新されません)

于 2012-07-24T15:23:56.640 に答える
15

基本的にそうです、それらは(おそらく)異なる権限と(おそらく)異なるパスワードを持つ2人の異なるユーザーです。

  • myuser @%:任意のホストから接続しているユーザーmyuser。
  • myuser @ localhost:ユーザーmyuser、ローカルホストからのみ接続します。

良い読み物は、接続アクセスに関するMySQLマニュアルであり、それがどのように機能するかを示しています。

于 2012-07-24T15:25:48.640 に答える
4

説明したのと同じ状況が発生しました-のエントリの追加が機能しuser@%ていませんでした。

ただし、同じエントリを追加すると、再び機能し始めますuser@localhost %パターンを理解していることを考えると、これは直感的ではないように思われました。

上記のケントによって特定された問題は次のとおりです。usersテーブルにエントリ行がありましたhost:localhost が、userは空白でした。これは明らか%@localhostに、私のルールの前に一致として使用されていたルールに解決されましたuser@%

簡単な答え-userテーブルに空白またはワイルドカードのユーザー名がないか確認してください。

...その空白がどのようにしてそこに到達したのか、それが意図的なものなのかはわかりません。

于 2017-03-27T02:53:36.497 に答える
1

それらが同じ意味である場合、または一方が他方を含む場合でも、それらは確かに別々のユーザーです!

13.7.1.3。GRANT構文

MySQLおよびGRANTの標準SQLバージョン

MySQLとGRANTの標準SQLバージョンの最大の違いは次のとおりです。

  • MySQLは、特権を、ユーザー名だけでなく、ホスト名とユーザー名の組み合わせに関連付けます。
于 2012-07-24T15:25:03.760 に答える