Utente database MySQL: quali privilegi sono necessari?
5 risposta
- voti
-
- 2011-01-06
Gli altrinon sononecessari comefainotare.
Aproposito,quello chepotrestifare èimpostarein modo condizionale l'utente/passin base allapagina richiesta.Comenonprivilegiato con selezione/inserimento/aggiornamento/eliminazioneperilnormale utilizzoe privilegiato conelementi relativi a definizione/indicein aggiunta quando si visita lapagina di aggiornamento.
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.
-
C'è qualche riferimento su come *impostarein modo condizionale l'utente/passaggioin base allapagina richiesta *in un ambiente WordPress?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: Non cheio sia a conoscenza dellaparte superiore dellamiatesta,ma l'essenza sarebbe definireilnormale utente DB seleziona/inserisci/aggiorna/eliminain wp-confige,quando l'URL corrisponde alpertinente/pagine wp-admin (probabilmente aggiorna,attivailtemae attivailplugin),per definire un utente alternativo chepuòfaretuttoil resto.@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
"Tuttii privilegi" di solito significa che dovresti concederetutto all'utente. Tuttavia ...
Hotrovato almeno un articolo che rivendica MySQL l'utentenecessita solo di:
- SELEZIONA
- INSERISCI
- AGGIORNAMENTO
Scavandopiù afondo ,ho scoperto cheperfunzionare completamente (aggiornamenti automatici,installazione/disinstallazioneplug-in,ecc.),WordPress richiede alcune autorizzazioni aggiuntive:
- ELIMINA
- ALTER (per aggiornamenti)
- CREA TABELLA
- DROP TABLE
Inoltre,non referenziatoma ha senso:
- INDICE
Ma questi sonogli unici due solidi riferimenti che riesco atrovare supportati da opinionipubblicate altrove. Tiincoraggio comunque a restare con GRANT ALL,ma se devi limitare assolutamente l'utilizzo deltuo DB,inizia con questi 7privilegie verifica completamente per assicurarti che le cosefunzionino comeprevisto.
"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.
-
Grazieper aver condivisoi vostripensieri.Per quel sitoinstallatonon ho GRANT ALLin quanto questonon è un sito di sviluppoe invece attenersi a allincl.INDICE.Finora sembrabuono,penso ditenerlotracciatonei prossimigiorni,è un sito di vita realeincl.un sacco diplugine simili.Per INDEXpotrei cercare unpo 'anchenel coree nelmanuale dimysql.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
-
Ricorda solo chei plug-in diterzepartipossono chiamare quasitutte leistruzioni SQL che desiderano ... quindi assicurati di controllarli correttamenteprima diinstallare cose dipendenti daiprivilegi che hai revocato.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
Ecco cosa ha da dire Codex sulla limitazione deiprivilegi degli utenti del database:
Per lenormali operazioni di WordPress,come lapubblicazione dipost diblog,il caricamento difilemultimediali,lapubblicazione di commenti,la creazione dinuovi utenti di WordPresse l'installazione diplug-in di WordPress,l'utente del database MySQLnecessita solo deiprivilegi di letturae scrittura dei datinel database MySQL; SELEZIONA,INSERISCI,AGGIORNAe CANCELLA.
Pertanto qualsiasi altra struttura del databasee privilegi di amministrazione,come DROP,ALTERe GRANTpossonoessere revocati. Revocandotaliprivilegi simigliorano anche lepolitiche di contenimento.
Nota: alcuniplugin,temi eimportanti aggiornamenti di WordPresspotrebbero richiedere di apportaremodifiche strutturali al database,come l'aggiunta dinuovetabelle o lamodifica dello schema. Intal caso,prima diinstallareilplugin o aggiornare un software,concederetemporaneamente all'utente del databasei privilegi richiesti.
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.
-
Cerco dimetterein praticailprincipio delminimoprivilegio quandopossibile.Leinformazioni (utili) citatenon sonopiùnell'articolo del Codex collegato,quindigrazieper averle copiate qui.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
Per quanto riguarda la "Nota"nelpost di redburn,il Wordpress Codex ha anche un avviso che dovresti leggere anche sugli aggiornamentie lemodifiche allo schema del database ...
(Modifica:nototuttavia che NON VEDO "GRANT" piùnell'elenco deiprivilegi durante la creazione o l'aggiornamento di un utente . Forse "CREATE" dovrebbeessere aggiunto all'elenco? Qualcuno hainformazioniin merito? - utilizzando Hostgator cPanel,marzo 2016 -)
ATTENZIONE:
Iltentativo di aggiornamento senza questiprivilegi [ SELECT,INSERT,UPDATE,DELETE,DROP,ALTERe GRANT ]può causare problemi quando si verificanomodifiche allo schema del database. Quindi NON lo è consiglia di revocare questiprivilegi. Se sentiil bisogno difarlo questopermotivi di sicurezza,quindi assicurati di avere un solido piano dibackupin attoprima,conbackup regolari dell'intero database che che haitestato sono validie chepossonoesserefacilmente ripristinati. Unfallito di solito l'aggiornamento del databasepuòessere risolto ripristinandoil database a una vecchia versione,concedendo le autorizzazioni appropriatee quindi lasciando WordPress riprova ad aggiornareil database. Il ripristino del database lofarà riportalo alla vecchia versionee all'amministrazione di WordPress le schermate rileveranno quindi la vecchia versionee consentiranno dieseguireilfile comandi SQLnecessari su diesso. Lamaggiorparte degli aggiornamenti di WordPressnon cambia lo schema,ma alcuni lofanno. Soloi principali aggiornamenti dipunti (da 3,7 a 3,8,per esempio) altererà lo schema. Gli aggiornamentiminori (da 3.8 a 3.8.1) lofaranno generalmenteno. Tuttavia,tieni unbackup regolare.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
Lamia opinione è la stessa di @EAMann sopra,così come lefonti a cui hafatto riferimento: GRANT ALL ènecessariopergarantire cheiltuo sito siafunzionaleeaprova difuturo. Anche su un sito diproduzione,proverai a seguireilmanuale dell'utente.
In quantopersona che contribuisce al codice al core di WordPresse ad alcuniplug-in,ti consiglio dimantenerei privilegi DBpredefiniti come suggeritonelmanuale dell'utente (GARANTISCI TUTTI I PRIVILEGI SU wpdatabasename. * TO "wordpressusername" @ "hostname").
Il codice sorgente di WordPress (siapresente chefuturo)presuppone che l'utente del database di WordPress abbiatuttii privilegi del databaseperil database di WordPress specificato. Se latua configurazioneperde qualsiasiprivilegio DB,potrestiincorrerein problemi durante l'aggiornamento di WordPresse l'aggiunta di altriplug-in.
Quindinon dovresti davvero utilizzareprivilegi DB diversi daiprivilegi DBpredefiniti consigliati dalmanuale,ameno chetunon sappia cosa staifacendo,haiesigenzemolto specifichee non dimentichi di avereprivilegi DBpersonalizzati.
Da allora lapagina del Codex è stata aggiornata su comefarlo conesempi su vari sistemie screenshot. https://codex.wordpress.org/Installing_WordPress#Step_2:_Create_the_Database_and_a >
Creazione di unnomee di un utente del database (tramite PHPMyAdmin): https://codex.wordpress.org/Installing_WordPress#Using_phpMyAdmin
Creazione di unnomee di un utente Databse (tramiteil client della riga di comando MySQL): 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
Lebreviistruzioni diinstallazioneper WordPress ( "5minuti" ) affermano che:
Durante la creazioneprofessionale di unnuovoblog,mi chiedevoin chemodo questo si associa a ciò chemi offre la configurazione deiprivilegi/permessi utente del database MySQL:
SELECT
,INSERT
,UPDATE
,DELETE
CREATE
,ALTER
,DROP
INDEX
LOCK TABLES
REFERENCES
CREATE TEMPORARY TABLES
CREATE VIEW
SHOW VIEW
CREATE ROUTINE
EXECUTE
ALTER ROUTINE
Sono abbastanza sicuro cheperi primitregruppi li ho chiamati Dati,Definizioneed Extra qui. Maper quanto riguardagli altri sotto la voce Altro ? Normalmente direi chenon sononecessari,ma vorrei avere una seconda opinione.