
{"id":184,"date":"2008-11-21T01:12:46","date_gmt":"2008-11-21T00:12:46","guid":{"rendered":"http:\/\/dasini.net\/blog\/?p=184"},"modified":"2009-12-29T21:47:54","modified_gmt":"2009-12-29T20:47:54","slug":"droits-minimums-pour-utiliser-mysqldump","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2008\/11\/21\/droits-minimums-pour-utiliser-mysqldump\/","title":{"rendered":"Droits minimums pour utiliser mysqldump"},"content":{"rendered":"<p><a title=\"mysqldump\" href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.1\/en\/mysqldump.html\" target=\"_self\">mysqldump <\/a>est un client texte qui permet de faire une sauvegarde (dump) logique des donn\u00e9es (au sens large) d&rsquo;un serveur MySQL.<br \/>\nPour pouvoir utiliser un client, il faut disposer d&rsquo;un compte utilisateur <em>(user, host et password)<\/em>, que le client utilisera pour se connecter au serveur MySQL.<br \/>\nSi vous devez faire r\u00e9guli\u00e8rement des sauvegardes, ce qui est (devrait \u00eatre) la norme, une bonne pratique est d&rsquo;avoir un utilisateur d\u00e9di\u00e9 pour cette tache, et par cons\u00e9quent que cet utilisateur ait les droits qui vont bien. Toujours dans cet esprit bonnes pratiques, le but l\u00e0 est d&rsquo;appliquer le principe du moindre privil\u00e8ge (droit). En d&rsquo;autres termes, <strong>l&rsquo;utilisateur doit avoir les droits pour faire ce qu&rsquo;il doit faire<\/strong> (logique) <strong>mais surtout pas plus<\/strong> (finalement \u00e7a aussi c&rsquo;est logique).<\/p>\n<p>ne surtout pas avoir:<\/p>\n<pre>mysql&gt; GRANT <strong>ALL PRIVILEGES<\/strong> ON *.* TO user_dump@localhost ;<\/pre>\n<p><em>=&gt; qui donne tout les droits sur toutes les bases de donn\u00e9es \u00e0 l&rsquo;utilisateur user_dump@localhost<br \/>\n<\/em><\/p>\n<p>mais plut\u00f4t:<\/p>\n<pre>mysql&gt; GRANT <strong>SELECT<\/strong>, <strong>LOCK TABLES<\/strong> ON *.* TO user_dump@localhost;<\/pre>\n<p><em>=&gt; les droits <strong>SELECT <\/strong>et<strong> LOCK TABLES<\/strong> sur tout le serveur pour l&rsquo;utilisateur user_dump@localhost<\/em><\/p>\n<p>Le droit SELECT permet de lire les donn\u00e9es \u00e0 r\u00e9cup\u00e9rer dans le fichier de dump.<br \/>\nLe droit LOCK TABLES permet la pose de verrous sur les tables, n\u00e9cessaire au maintient de la coh\u00e9rence.<\/p>\n<p>et pis c&rsquo;est tout !<\/p>\n<p>Et donc pour faire une sauvegarde logique de toute la base de donn\u00e9es (la commande minimale est) :<\/p>\n<pre> shell&gt; mysqldump -u user_dump -p --all-database<\/pre>\n<p><em>=&gt;lance le client mysqldump avec l&rsquo;utilisateur user_dump.<\/em><\/p>\n<p>P.S. ??Pour utiliser la requ\u00eate SELECT \u2026 INTO OUFILE il vous faudra le droit FILE.<\/p>\n<p>P.S.2 dans la <strong>vraie <\/strong>vie, vous aurez besoins de renseigner plus de param\u00e8tres, et surtout de r\u00e9cup\u00e9rer la sortie du dump car par d\u00e9faut c&rsquo;est&#8230; l&rsquo;\u00e9cran \ud83d\ude2e (cependant avec un bel \u00e9cran monochrome vert, cela peut faire de beaux effets \u00e0 la MATRIX) \ud83d\ude42<\/p>\n<p>P.S.3 Il est quand m\u00eame possible de se passer du droit LOCK TABLES, il faut alors dire \u00e0 mysqldump de ne pas mettre de verrous sur les tables<\/p>\n","protected":false},"excerpt":{"rendered":"<p>mysqldump est un client texte qui permet de faire une sauvegarde (dump) logique des donn\u00e9es (au sens large) d&rsquo;un serveur MySQL.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[8],"tags":[55,57,241,54,56],"class_list":["post-184","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-droit","tag-lock-tables","tag-mysql","tag-mysqldump","tag-select"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9LfWW-2Y","jetpack-related-posts":[{"id":673,"url":"https:\/\/dasini.net\/blog\/2009\/07\/17\/utiliser-xml-avec-mysql-5-1-part-15\/","url_meta":{"origin":184,"position":0},"title":"Utiliser XML avec MySQL 5.1 (part 1\/5)","author":"Olivier DASINI","date":"17 juillet 2009","format":false,"excerpt":"MySQL avec son mod\u00e8le relationnel et XML avec son approche hi\u00e9rarchique ont en commun la vocation d'organiser et de structurer des ensembles de donn\u00e9es. En regardant de plus pr\u00e8s, ces technologies peuvent offrir des solutions compl\u00e9mentaires : * MySQL s'adapte \u00e0 merveille \u00e0 la gestion de syst\u00e8mes d'informations \u00e9ventuellement lourds\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":448,"url":"https:\/\/dasini.net\/blog\/2009\/02\/09\/restaurer-une-sauvegarde-en-desactivant-le-log-binaire\/","url_meta":{"origin":184,"position":1},"title":"Restaurer une sauvegarde en d\u00e9sactivant le log binaire","author":"Olivier DASINI","date":"9 f\u00e9vrier 2009","format":false,"excerpt":"Il est pafois utile de d\u00e9sactiver le log binaire lors d'une restauration. MySQL permet de le d\u00e9sactiver pour une session avec la commande SQL_LOG_BIN:","rel":"","context":"Dans &quot;Astuce&quot;","block_context":{"text":"Astuce","link":"https:\/\/dasini.net\/blog\/category\/astuce\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":779,"url":"https:\/\/dasini.net\/blog\/2009\/10\/01\/utiliser-xml-avec-mysql-5-1-part-55\/","url_meta":{"origin":184,"position":2},"title":"Utiliser XML avec MySQL 5.1 (part 5\/5)","author":"Olivier DASINI","date":"1 octobre 2009","format":false,"excerpt":"Voil\u00e0 un petit panorama de l'utilisation des fonctionnalit\u00e9s XML de MySQL. Comme nous l'avons vu, g\u00e9n\u00e9rer le r\u00e9sultat d'une requ\u00eate au format XML reste tr\u00e8s simple avec le client texte mysql, idem pour la g\u00e9n\u00e9ration d'une sauvegarde (mysqldump). De plus, bien que n'\u00e9tant pas un base de donn\u00e9es XML, ont\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":137,"url":"https:\/\/dasini.net\/blog\/2008\/11\/16\/enigme-order-by\/","url_meta":{"origin":184,"position":3},"title":"\u00c9nigme&#8230; order by","author":"Olivier DASINI","date":"16 novembre 2008","format":false,"excerpt":"Cela part d'un probl\u00e8me tout simple, trier les donn\u00e9es d'une table: mysql> SELECT id, technologie FROM enigme;","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":192,"url":"https:\/\/dasini.net\/blog\/2008\/11\/23\/mysql-5-les-vues-part-17\/","url_meta":{"origin":184,"position":4},"title":"MySQL 5 : Les vues &#8212; (part 1\/7)","author":"Olivier DASINI","date":"23 novembre 2008","format":false,"excerpt":"Le langage SQL acronyme de Structured Query Language (Langage Structur\u00e9 de Requ\u00eates), a \u00e9t\u00e9 con\u00e7u pour g\u00e9rer les donn\u00e9es dans un SGBDR. A l'aide des DML (Data Manipulation Language ie les requ\u00eates SELECT, INSERT, UPDATE, DELETE) il est possible de manipuler ces donn\u00e9es qui sont stock\u00e9es dans des tables. SQL\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26,"url":"https:\/\/dasini.net\/blog\/2008\/10\/29\/mysql-50-un-sgbdr-mature-part-34\/","url_meta":{"origin":184,"position":5},"title":"MySQL 5.0 : Un SGBDR mature ? &#8212; (part 3\/4)","author":"Olivier DASINI","date":"29 octobre 2008","format":false,"excerpt":"Les proc\u00e9dures stock\u00e9es sont des listes de commandes qui peuvent \u00eatre compil\u00e9es et stock\u00e9es sur le serveur. Elles permettent de d\u00e9placer une partie de la logique m\u00e9tier d'une application de base de donn\u00e9es du client vers le serveur. Les clients n\u2019ont plus besoin de soumettre \u00e0 nouveau toute la commande,\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/comments?post=184"}],"version-history":[{"count":9,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/184\/revisions"}],"predecessor-version":[{"id":829,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/184\/revisions\/829"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}