MySQL-Datenbankbenutzer: Welche Berechtigungen werden benötigt?
5 Antworten
- Stimmen
-
- 2011-01-06
Die anderen werdennichtbenötigt,wie Sie hervorheben.
Übrigens können Sie den Benutzer/Passbasierend auf der angeforderten Seitebedingtfestlegen.Wiebei Nichtprivilegiertenmit Auswählen/Einfügen/Aktualisieren/Löschenfür dennormalen Gebrauch und Privilegiertenmit Definitions-/Index-bezogenen Dingen zusätzlichbeim Besuch der Upgrade-Seite.
The others are not needed as you point out.
Btw, what you could do is, conditionally set the user/pass based on the requested page. As in unprivileged with select/insert/update/delete for normal usage, and privileged with definition/index related stuff in addition when visiting the upgrade page.
-
Gibteseinen Hinweis darauf,wie * der Benutzer/Passbasierend auf der angeforderten Seite *in einer WordPress-Umgebungbedingtfestgelegt werden kann?TAIs there any reference on how to *conditionally set the user/pass based on the requested page* in a WordPress environment? TA
- 1
- 2014-01-24
- superjos
-
@superjos: Nicht,dassmir das auf denersten Blickbewusst wäre,aber das Wesentliche wäre,dennormalen DB-Benutzer zu definieren,derin wp-config auswählt/einfügt/aktualisiert/löscht und wenn die URLmit der relevanten/übereinstimmt.wp-admin-Seiten (wahrscheinlich aktualisieren,Thema aktivieren und Plugin aktivieren),umeinen alternativen Benutzer zu definieren,der alles andere kann.@superjos: Not that I'm aware of off the top of my head, but the gist of it would be to define the normal DB user select/insert/update/delete in wp-config and, when the url matches the relevant /wp-admin pages (likely upgrade, activate theme and activate plugin), to define an alternative user that can do everything else.
- 0
- 2014-01-24
- Denis de Bernardy
-
- 2011-01-06
"Alle Berechtigungen"bedeutetnormalerweise,dass Sie dem Benutzer allesgeben sollten. Jedoch ...
Ich habemindestens einen Artikel gefunden,in dem MySQLbeansprucht wird Benutzerbenötigtnur:
- SELECT
- INSERT
- UPDATE
Tiefergraben ,stellteichfest,dassfür den vollständigen Betrieb (automatisierte Updates,Plug-in-Installation/Deinstallation usw.),WordPresserforderteinige zusätzliche Berechtigungen:
- LÖSCHEN
- ALTER (für Updates)
- TABELLE ERSTELLEN
- TROPFENTABELLE
Auchnicht referenziert,aberesmacht Sinn:
- INDEX
Aber dies sind dieeinzigen zwei soliden Referenzen,dieichfinden kann und die durch an anderer Stelle veröffentlichte Meinungengestützt werden. Ich würde Sie weiterhinermutigen,sich an GRANT ALL zu halten,aber wenn Sie Ihre DB-Nutzung unbedingt einschränkenmüssen,beginnen Siemit diesen 7 Berechtigungen und testen Sie vollständig ,um sicherzustellen,dass die Dinge sofunktionierenerwartet.
"All privileges" usually means you should grand everything to the user. However ...
I've found at least one article that claims the MySQL user only needs:
- SELECT
- INSERT
- UPDATE
Digging deeper, I found that in order to operate fully (automated updates, plug-in installation/uninstallation, etc.), WordPress requires some additional permissions:
- DELETE
- ALTER (for updates)
- CREATE TABLE
- DROP TABLE
Also, not referenced but it makes sense:
- INDEX
But those are the only two solid references I can find that are backed up by opinions posted elsewhere. I'd still encourage you to stick with GRANT ALL, but if you absolutely must limit your DB use, start with these 7 privileges and test fully to make sure things work as expected.
-
Vielen Dankfür Ihre Meinung.Für dieseinstallierte Site habeichnicht ALLES GEWÄHRT,da dies keine Entwicklungssiteist,sondernmich an alleinkl.INDEX.Sieht soweitgut aus,ich denke,ichbehalteesin dennächsten Tagenim Auge,esisteine echte Seiteinkl.viel Plugin verwenden und dergleichen.Nach INDEX könnteich auchein bisschennach Core und dem MySQL-Handbuch suchen.Thanks for sharing your thoughts. For that site installed I did not GRANT ALL as this is not a development site and instead stick to all incl. INDEX. Looks good so far, I think I keep it tracked over the next days, it's a real life site incl. a lot of plugin use and the like. For INDEX I might search core and the mysql manual a bit as well.
- 0
- 2011-01-06
- hakre
-
Denken Sie daran,dass Plug-Ins von Drittanbieternnahezujedegewünschte SQL-Anweisung aufrufen können. Stellen Sie daher sicher,dass Sie sie ordnungsgemäß überprüfen,bevor Sie Dingeinstallieren,die von den von Ihnen widerrufenen Berechtigungen abhängen.Just remember that 3rd party plug-ins can call just about any SQL statement they want ... so make sure you properly vet them before installing things dependent on privileges you've revoked.
- 1
- 2011-01-06
- EAMann
-
- 2014-01-12
Codex sagt Folgendes zur Einschränkung der Datenbankbenutzerrechte:
Fürnormale WordPress-Vorgänge wie das Posten von Blog-Posts,das Hochladen von Mediendateien,das Posten von Kommentaren,das Erstellenneuer WordPress-Benutzer und das Installieren von WordPress-Pluginsbenötigt der MySQL-Datenbankbenutzernur Datenlese- und Datenschreibrechtefür die MySQL-Datenbank. SELECT,INSERT,UPDATE und DELETE.
Daher können alle anderen Datenbankstruktur- und Administrationsrechte wie DROP,ALTER und GRANT widerrufen werden. Durch den Widerruf solcher Berechtigungen verbessern Sie auch die Eindämmungsrichtlinien.
Hinweis: Einige Plugins,Themes und wichtige WordPress-Updateserfordernmöglicherweise Änderungen an der Datenbankstruktur,z. B. das Hinzufügenneuer Tabellen oder das Ändern des Schemas. In diesem Fallgewähren Sie dem Datenbankbenutzer vor der Installation des Plugins oder der vorübergehenden Aktualisierungeiner Software vorübergehend dieerforderlichen Berechtigungen.
Here's what Codex has to say on restricting database user privileges:
For normal WordPress operations, such as posting blog posts, uploading media files, posting comments, creating new WordPress users and installing WordPress plugins, the MySQL database user only needs data read and data write privileges to the MySQL database; SELECT, INSERT, UPDATE and DELETE.
Therefore any other database structure and administration privileges, such as DROP, ALTER and GRANT can be revoked. By revoking such privileges you are also improving the containment policies.
Note: Some plugins, themes and major WordPress updates might require to make database structural changes, such as add new tables or change the schema. In such case, before installing the plugin or updating a software temporarily allow the database user the required privileges.
-
Ich versuche,das Prinzip desgeringsten Privilegs zupraktizieren,wannimmer diesmöglichist.Die (nützlichen) zitierten Informationenbefinden sichnichtmehrim verlinkten Codex-Artikel. Vielen Dank,dass Sie sie hier kopiert haben.I try to practice the principle of Least Privilege when ever possible. The (useful) quoted information is no longer in the linked Codex article so thanks for copying it here.
- 2
- 2017-03-02
- Anthony Geoghegan
-
- 2016-03-30
In Bezug auf den "Hinweis"in Redburns Beitragenthält der Wordpress-Codex aucheine Warnung,die Sie auch über Aktualisierungen und Änderungen des Datenbankschemas lesen sollten ...
(Bearbeiten: Ich stellejedochfest,dass ich
WARNUNG:
Der Versuch von Updates ohne diese Berechtigungen [ SELECT,INSERT,UPDATE,DELETE,DROP,ALTER und GRANT ] kann dazuführen Probleme,wenn Änderungen am Datenbankschema auftreten. Somitistes NICHT empfohlen,diese Berechtigungen zu widerrufen. Wenn Sie das Bedürfnis haben,dies zutun Dies aus Sicherheitsgründen,dann stellen Siebitte sicher,dass Sieeinen soliden haben Sicherungsplan zuerst vorhanden,mit regelmäßigen Sicherungen dergesamten Datenbank,die Sie habengetestet,sindgültig und das kann leicht wiederhergestellt werden. Afehlgeschlagen Ein Datenbank-Upgrade kannnormalerweise durch Wiederherstellen der Datenbankbehoben werden zueiner alten Version,die die richtigen Berechtigungenerteilt und dann vermietet WordPress versucht das Datenbank-Updateerneut. Das Wiederherstellen der Datenbank wird Setzen Siees auf die alte Version und die WordPress-Administration zurück Bildschirmeerkennen dann die alte Version undermöglichenes Ihnen,die auszuführen notwendige SQL-Befehle darauf. Diemeisten WordPress-Upgrades ändern sichnicht das Schema,abereinige tun. Nurgrößere Punkt-Upgrades (3,7bis 3,8,z Beispiel) ändert das Schema. Kleinere Upgrades (3.8bis 3.8.1) werden durchgeführt im Allgemeinennicht. Führen Sie dennocheine regelmäßige Sicherung durch.Regarding the "Note" in redburn's post, the Wordpress Codex also has a Warning you should also read about updates and database schema changes...
(Edit: I notice however that I DO NOT SEE "GRANT" in the list of privileges anymore when creating or updating a user. Perhaps "CREATE" should be added to the list? Does anyone have information regarding this? -- using Hostgator cPanel, March 2016 --)
WARNING:
Attempting updates without having these privileges [SELECT, INSERT, UPDATE, DELETE, DROP, ALTER, and GRANT] can cause problems when database schema changes occur. Thus, it is NOT recommended to revoke these privileges. If you do feel the need to do this for security reasons, then please make sure that you have a solid backup plan in place first, with regular whole database backups which you have tested are valid and that can be easily restored. A failed database upgrade can usually be solved by restoring the database back to an old version, granting the proper permissions, and then letting WordPress try the database update again. Restoring the database will return it back to that old version and the WordPress administration screens will then detect the old version and allow you to run the necessary SQL commands on it. Most WordPress upgrades do not change the schema, but some do. Only major point upgrades (3.7 to 3.8, for example) will alter the schema. Minor upgrades (3.8 to 3.8.1) will generally not. Nevertheless, keep a regular backup. -
- 2018-10-08
Meine Meinungist dieselbe wie die von @EAMann oben sowie die Quellen,auf dieer verwiesen hat: GRANT ALListerforderlich,um sicherzustellen,dass Ihre Websitefunktionsfähig und zukunftssicherist. Auch aneinem Produktionsstandort sollten Sie versuchen,sich an das Benutzerhandbuch zu halten.
Alsjemand,der Code zum WordPress-Kern undeinigen Plug-Insbeiträgt,empfehleich,dieim Benutzerhandbuch vorgeschlagenen Standard-DB-Berechtigungenbeizubehalten (GRANT ALL PRIVILEGES ON wpdatabasename. * TO "wordpressusername" @ "hostname").
Der WordPress-Quellcode (sowohlgegenwärtig als auch zukünftig) setzt voraus,dass der WordPress-DB-Benutzer alle DB-Berechtigungenfür die angegebene WordPress-Datenbank hat. Wennin Ihrem Setup DB-Berechtigungenfehlen,können Probleme auftreten,wenn Sie WordPress aktualisieren und weitere Plug-Ins hinzufügen.
Sie sollten also keine anderen DB-Berechtigungen als dieim Handbuchempfohlenen Standard-DB-Berechtigungen verwenden,es sei denn,Sie wissen,was Sietun,habenganzbestimmte Anforderungen und vergessennicht,dass Sie überbenutzerdefinierte DB-Berechtigungen verfügen.
Die Codex-Seite wurde seitdemmit Beispielen auf verschiedenen Systemen und Screenshots aktualisiert. https://codex.wordpress.org/Installing_WordPress#Step_2:_Create_the_d_ >
Erstelleneines Datenbanknamens undeines Benutzers (über PHPMyAdmin): https://codex.wordpress.org/Installing_WordPress#Using_phpMyAdmin
Erstelleneines Datenbanknamens undeines Benutzers (über den MySQL-Befehlszeilenclient): 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
My opinion is the same as @EAMann above, as well as the sources he referenced: GRANT ALL is necessary in ensuring your site is functional and future proof. Even on a production site, you shall try stick to the user manual.
As someone who contributes code to WordPress core and a few plug-ins, I recommend you retain the default DB privileges as suggested in the user manual ( GRANT ALL PRIVILEGES ON wpdatabasename.* TO "wordpressusername"@"hostname" ).
The WordPress source code (both present and future) assumes the WordPress DB user has all DB privileges for the given WordPress database. If your setup miss any DB privileges, you may run into issues as you upgrade WordPress and add more plug-ins.
So you really shouldn't be using DB privileges different from the default DB privileges recommended by the manual, unless you know what you're doing, have very specific needs, and won't forget your have custom DB privileges.
The Codex page has since been updated on how to do this with examples on various systems and screenshots. https://codex.wordpress.org/Installing_WordPress#Step_2:_Create_the_Database_and_a_User
Creating a Databse name and user (via PHPMyAdmin): https://codex.wordpress.org/Installing_WordPress#Using_phpMyAdmin
Creating a Databse name and user (via MySQL command line client): 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
In der kurzen Installationsanweisungfür WordPress ( "5 Minuten" ) heißtes:
Beimprofessionellen Einrichteneinesneuen Blogs habeichmichgefragt,wie sich das auf die Konfiguration der Benutzerrechte/-berechtigungen der MySQL-Datenbank auswirkt:
SELECT
,INSERT
,UPDATE
,DELETE
CREATE
,ALTER
,DROP
INDEX
LOCK TABLES
REFERENCES
CREATE TEMPORARY TABLES
CREATE VIEW
SHOW VIEW
CREATE ROUTINE
EXECUTE
ALTER ROUTINE
Ichbin mir ziemlich sicher,dassichfür dieersten drei Gruppen hier Daten,Definition und Extragenannt habe. Aber wasistmit den anderen unter dem Eintrag Mehr ? Normalerweise würdeich sagen,dass diesenichtbenötigt werden,aberichmöchteeine zweite Meinungeinholen.