52

MySQLユーザーを作成して権限を付与する方法を示すヘルパーWebサイトがたくさんあるのを見て、これに頭を悩ませていますが、何らかの理由でうまくいきません。最新の MySQL バージョンがインストールされた WinXP と MacBook Pro ラップトップの両方で試してみました。

以下は、WordPress で作業したときのほんの一例です。実際のデータベースは別のものですが、同じ問題です。

手順は次のとおりです。

mysql> mysql -uroot -p<password>
mysql> CREATE DATABASE wwordpress;
mysql> CREATE USER 'www'@'localhost' IDENTIFIED BY 'basic';

クエリ OK、影響を受ける行は 0 (0.14 秒)

mysql> GRANT INSERT ON wordpress.* TO 'www'@'localhost' IDENTIFIED BY 'basic';

クエリ OK、影響を受ける行は 0 (0.00 秒)

mysql> FLUSH PRIVILEGES;

クエリ OK、影響を受ける行は 0 (0.03 秒)

mysql> SELECT * FROM mysql.user WHERE User='www' \G
**************************** 1. 行 ******************** ********
                 ホスト: ローカルホスト
                 ユーザー: www
             パスワード: *E85C94AF0F09C892339D31CF7570A970BCDC5805
          Select_priv: N
          Insert_priv: N
          Update_priv: N
          削除_p​​riv: N
          Create_priv: N
            Drop_priv: いいえ
          Reload_priv: N
        Shutdown_priv: N
         Process_priv: N
            File_priv: N
           Grant_priv: N
      References_priv: N
           Index_priv: N
           Alter_priv: N
         Show_db_priv: N
           Super_priv: N
Create_tmp_table_priv: N
     Lock_tables_priv: N
         Execute_priv: N
      Repl_slave_priv: N
     Repl_client_priv: N
     Create_view_priv: N
       Show_view_priv: N
  Create_routine_priv: N
   Alter_routine_priv: N
     Create_user_priv: N
           Event_priv: N
         Trigger_priv: いいえ
             ssl_type:
           ssl_cipher:
          x509_発行者:
         x509_subject:
        最大質問数: 0
          最大更新: 0
      最大接続数: 0
 max_user_connections: 0
セットで 1 行 (0.00 秒)

mysql>

ご覧のとおり、「Insert_priv: N」は「Y」である必要があります。

助言がありますか?

前もって感謝します。

4

5 に答える 5

49

選択しているのはグローバル権限です。ただし、データベース(およびホストですが、それは問題ではありません)に特定の権限を与えています。

GRANT INSERT ON wordpress.* TO 'www'@'localhost' IDENTIFIED BY 'basic';

これらのアクセス許可は、dbテーブルに格納されます。

正しい方向に向けるためだけに:

SHOW GRANTS FOR 'www'@'localhost'

http://dev.mysql.com/doc/refman/5.0/en/show-grants.html

于 2010-10-08T19:29:55.870 に答える
14

これは、ユーザーに付与されたほとんどの権限が保存されている場所ではありません - 試してみてください

SHOW GRANTS FOR 'www'@'localhost'

代わりにデータベース固有の権限を表示します。(許可は、すべてのデータベースに対するものである場合にのみ、ユーザー テーブルに表示されます。)

これは、MySQL にアクセス許可がどのように保存されるかについての (かなり古い) 段階的な詳細です。状況はあまり変わっていないと思います。

于 2010-10-07T23:49:43.463 に答える
1

ユーザーが編集、挿入、または削除できるページを制限しようとしている場合、Y または N を選択する必要がある場合は、mysql.db または mysql.tables_priv テーブルを確認する必要があります。このテーブルは自動的に更新されます。 Y と N は、データベースにログイン (接続を作成) できる特定のユーザーが存在することを示すことを目的とする mysql.user とは対照的に、ユーザーがテーブルまたは列に対してどのような権限を持っているかを示すことのみを目的として設計されているためです。

于 2012-03-26T12:06:32.500 に答える