WordPressの短いインストール手順( "5 Minutes" )には、次のように記載されています。
あなたのWebサーバー上にWordPress用のデータベースを作成し、それにアクセスしてそれを変更するためのすべての特権を持つMySQLユーザーを作成します。
専門的に新しいブログを設定している間、私はそれがMySQLデータベースのユーザー特権/許可設定が私に提供するものにどのように対応するか疑問に思いました:
SELECT
name__、INSERT
name__、UPDATE
name__、DELETE
name__CREATE
name__、ALTER
name__、DROP
name__INDEX
name__LOCK TABLES
REFERENCES
name__CREATE TEMPORARY TABLES
CREATE VIEW
SHOW VIEW
CREATE ROUTINE
EXECUTE
name__ALTER ROUTINE
私は最初の3つのグループについては確かに確信しています、ここでそれらをData、Definition、およびExtraと名付けました。しかし、 More エントリの下にある他の人はどうでしょうか。通常、私は言う、それらは必要ではありませんが、私はセカンドオピニオンを得たいと思います。
あなたが指摘するように他の人は必要ではありません。
ところで、あなたができることは、要求されたページに基づいて条件付きでユーザー/パスを設定することです。アップグレードページにアクセスするときに、通常の使用のためにselect/insert/update/deleteを使用して特権を持たず、さらに定義/インデックス関連のものを特権で与えます。
「すべての特権」とは通常、すべてをユーザーに引き継ぐことを意味します。しかしながら ...
私は少なくとも 一つの記事 を見つけました - それはMySQLユーザーだけが必要と主張しています:
より深く掘り下げる 、完全に機能する(自動アップデート、プラグインのインストール/アンインストールなど)には、WordPressに追加の権限が必要であることがわかりました。
また、参照されていませんが意味があります。
しかし、これらは私が見つけることができる唯一の2つの堅実な参照であり、それは他の場所に投稿された意見によって裏付けられています。それでもGRANT ALLに固執することをお勧めしますが、DBの使用を絶対にmustに制限する場合は、これらの7つの特権から始めて test fully にしてください。
これが、Codexがデータベースユーザー特権を制限することについて言っていることです:
ブログ投稿の投稿、メディアファイルのアップロード、コメントの投稿、新しいWordPressユーザーの作成、WordPressプラグインのインストールなどの通常のWordPress操作では、MySQLデータベースユーザーはMySQLデータベースへのデータ読み取りおよびデータ書き込み権限のみが必要です。 SELECT、INSERT、UPDATE、およびDELETE。
そのため、DROP、ALTER、GRANTなど、他のデータベース構造と管理権限を取り消すことができます。そのような特権を取り消すことで、封じ込めポリシーも改善されます。
注:プラグイン、テーマ、および主要なWordPressのアップデートによっては、新しいテーブルの追加やスキーマの変更など、データベースの構造上の変更が必要になる場合があります。このような場合は、プラグインをインストールしたりソフトウェアを更新したりする前に、データベースユーザーに必要な権限を一時的に許可してください。
Redburnの投稿の「注意」に関しては、Wordpress Codexにもアップデートやデータベーススキーマの変更について読むべき警告があります。
(編集:しかし、 気付かないでください "GRANT"ユーザーを作成または更新するときに、もう特権のリストに含まれていません。おそらく"CREATE"をリストに追加しますか?だれでもこれに関する情報を持っていますか? - Hostgator cPanelの使用、2016年3月 - )
警告:
これらの権限[ SELECT、INSERT、UPDATE、DELETE、DROP、ALTER、およびGRANT ]を持たないで更新を試みると、データベーススキーマの変更が発生したときに問題が発生する可能性があります。したがって、これらの権限を取り消すことはお勧めできません。セキュリティ上の理由からこれを実行する必要があると感じる場合は、最初にしっかりとしたバックアップ計画を立て、テスト済みの定期的なデータベース全体のバックアップが有効であり、簡単に復元できることを確認してください。データベースのアップグレードが失敗した場合は、通常、データベースを古いバージョンに復元し、適切な権限を付与してから、WordPressにデータベースの更新を再試行させることで解決できます。データベースを復元すると、古いバージョンに戻り、WordPress管理画面で古いバージョンが検出され、必要なSQLコマンドを実行することができます。ほとんどのWordPressのアップグレードはスキーマを変更しませんが、いくつかは変更します。スキーマを変更するのは、メジャーポイントアップグレード(例えば3.7から3.8)だけです。マイナーアップグレード(3.8から3.8.1)は一般的には行われません。それでも、定期的なバックアップを取ってください。
私の意見は、上の@EAMann、および彼が言及した情報源と同じです。あなたのサイトが機能的で将来的に証明されるためにはGRANT ALLが必要です。生産現場でも、あなたはユーザーマニュアルにこだわることを試みなければなりません。
WordPressコアといくつかのプラグインにコードを提供する誰かとして、私はあなたがユーザーマニュアルで提案されているようにデフォルトのDB特権を保持することをお勧めします。
WordPressのソースコード(現在と将来の両方)は、WordPress DBユーザーが与えられたWordPressデータベースに対するすべてのDB特権を持っていると仮定しています。あなたの設定がDB特権を見逃した場合、WordPressをアップグレードしてプラグインを追加するときに問題に遭遇するかもしれません。
ですから、自分がしていることを知っていて、非常に特別なニーズがあり、カスタムDB権限を持っていることを忘れない限り、マニュアルで推奨されているデフォルトのDB権限とは異なるDB権限を使用しないでください。
コーデックスページはそれ以来様々なシステムとスクリーンショットの例でこれを行う方法について更新されました。 https://codex.wordpress.org/Installing_WordPress#Step_2:_Create_the_Database_and_a_User
Databseの名前とユーザーを作成する(PHPMyAdmin経由): https://codex.wordpress.org/Installing_WordPress#Using_phpMyAdmin
(MySQLコマンドラインクライアントを介して)Databseの名前とユーザーを作成する: https://codex.wordpress.org/Installing_WordPress#Using_the_MySQL_Client
mysql> CREATE DATABASE wpdatabasename;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON wpdatabasename.* TO "wordpressusername"@"hostname"
-> IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> EXIT