{"id":682,"date":"2021-03-05T23:24:59","date_gmt":"2021-03-05T22:24:59","guid":{"rendered":"http:\/\/www.netexpertise.eu\/fr\/?p=682"},"modified":"2021-03-08T22:15:26","modified_gmt":"2021-03-08T21:15:26","slug":"modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql","status":"publish","type":"post","link":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html","title":{"rendered":"Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql"},"content":{"rendered":"\n<p>La s\u00e9curit\u00e9 des proc\u00e9dures et fonctions <a href=\"\/en\/category\/database\/mysql\">Mysql<\/a>  est param\u00e9tr\u00e9e sur DEFINER par d\u00e9faut, comme d\u00e9crit dans le chapitre \u00ab\u00a0Create Procedure and create function chapter\u00a0\u00bb sur <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/create-procedure.html\">mysql.com<\/a>.<br>Pourquoi est-ce important? N&rsquo;importe qui ayant le privil\u00e8ge EXECUTE peut lancer la proc\u00e9dure ou la fonction avec les droits du DEFINER. Ce n&rsquo;est peut-\u00eatre pas souhaitable.<\/p>\n\n\n\n<p>Une erreur peut survenir lorsque que quelqu&rsquo;un essaie d&rsquo;ex\u00e9cuter la proc\u00e9dure\/fonction dont le \u00ab\u00a0definer\u00a0\u00bb ou auteur a \u00e9t\u00e9 supprim\u00e9.<br><em>ERROR 1449 (HY000): The user specified as a definer (&lsquo;definer&rsquo;@&rsquo;localhost&rsquo;) does not exist<\/em><br>On peut alors en venir \u00e0 devoir changer le definer et\/ou le type de s\u00e9curit\u00e9 sur de nombreuses proc\u00e9dures et fonctions.<br>Il est int\u00e9ressant de noter qu&rsquo;un utilisateur supprim\u00e9 n&rsquo;est pas g\u00eanant pour Mysql lors d&rsquo;un dump ou d&rsquo;une restauration contrairement aux vues pour lesquelles une erreur est retourn\u00e9e.<\/p>\n\n\n\n<p><br>Tout d&rsquo;abord, on peut jeter un oeil global aux proc\u00e9dures et fonctions avec les 2 commandes basiques:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql\">SHOW FUNCTION STATUS;\nSHOW PROCEDURE STATUS;<\/code><\/pre>\n\n\n\n<p>On peut aussi ajouter LIKE &lsquo;ma_proc&rsquo;, ou WHERE Db LIKE &lsquo;ma_base&rsquo; pour filtrer les r\u00e9sultats.<\/p>\n\n\n\n<p><br>Il est toujours possible de modifier un \u00e0 un les definers et la s\u00e9curit\u00e9 avec Mysql <a href=\"https:\/\/www.mysql.com\/fr\/products\/workbench\/\">Workbench<\/a>, ou en les recr\u00e9ant en SQL mais le plus rapide est de les changer tous d&rsquo;un coup en ligne de commande (restreindre la mise \u00e0 jour en adaptant le WHERE):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql\">UPDATE mysql.proc SET security_type='INVOKER'\nWHERE security_type='DEFINER';<\/code><\/pre>\n\n\n\n<p><br>On peut aussi mettre \u00e0 jour le DEFINER avec la requ\u00eate suivante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql\">UPDATE mysql.proc SET definer='root@localhost'\nWHERE NOT definer='root@localhost';<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La s\u00e9curit\u00e9 des proc\u00e9dures et fonctions Mysql est param\u00e9tr\u00e9e sur DEFINER par d\u00e9faut, comme d\u00e9crit dans le chapitre \u00ab\u00a0Create Procedure and create function chapter\u00a0\u00bb sur mysql.com.Pourquoi est-ce important? N&rsquo;importe qui ayant le privil\u00e8ge EXECUTE peut lancer la proc\u00e9dure ou la fonction avec les droits du DEFINER. Ce n&rsquo;est peut-\u00eatre pas souhaitable. Une erreur peut survenir [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[4],"tags":[404,35],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Netexpertise - Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Netexpertise - Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql\" \/>\n<meta property=\"og:description\" content=\"La s\u00e9curit\u00e9 des proc\u00e9dures et fonctions Mysql est param\u00e9tr\u00e9e sur DEFINER par d\u00e9faut, comme d\u00e9crit dans le chapitre \u00ab\u00a0Create Procedure and create function chapter\u00a0\u00bb sur mysql.com.Pourquoi est-ce important? N&rsquo;importe qui ayant le privil\u00e8ge EXECUTE peut lancer la proc\u00e9dure ou la fonction avec les droits du DEFINER. Ce n&rsquo;est peut-\u00eatre pas souhaitable. Une erreur peut survenir [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html\" \/>\n<meta property=\"og:site_name\" content=\"Netexpertise\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-05T22:24:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-08T21:15:26+00:00\" \/>\n<meta name=\"author\" content=\"dave\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@netexpertise\" \/>\n<meta name=\"twitter:site\" content=\"@netexpertise\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html\",\"url\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html\",\"name\":\"Netexpertise - Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql\",\"isPartOf\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#website\"},\"datePublished\":\"2021-03-05T22:24:59+00:00\",\"dateModified\":\"2021-03-08T21:15:26+00:00\",\"author\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\"},\"breadcrumb\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.netexpertise.eu\/fr\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#website\",\"url\":\"http:\/\/www.netexpertise.eu\/fr\/\",\"name\":\"Netexpertise\",\"description\":\"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\",\"name\":\"dave\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"caption\":\"dave\"},\"sameAs\":[\"http:\/\/www.netexpertise.eu\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Netexpertise - Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html","og_locale":"fr_FR","og_type":"article","og_title":"Netexpertise - Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql","og_description":"La s\u00e9curit\u00e9 des proc\u00e9dures et fonctions Mysql est param\u00e9tr\u00e9e sur DEFINER par d\u00e9faut, comme d\u00e9crit dans le chapitre \u00ab\u00a0Create Procedure and create function chapter\u00a0\u00bb sur mysql.com.Pourquoi est-ce important? N&rsquo;importe qui ayant le privil\u00e8ge EXECUTE peut lancer la proc\u00e9dure ou la fonction avec les droits du DEFINER. Ce n&rsquo;est peut-\u00eatre pas souhaitable. Une erreur peut survenir [&hellip;]","og_url":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html","og_site_name":"Netexpertise","article_published_time":"2021-03-05T22:24:59+00:00","article_modified_time":"2021-03-08T21:15:26+00:00","author":"dave","twitter_card":"summary_large_image","twitter_creator":"@netexpertise","twitter_site":"@netexpertise","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html","url":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html","name":"Netexpertise - Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql","isPartOf":{"@id":"http:\/\/www.netexpertise.eu\/fr\/#website"},"datePublished":"2021-03-05T22:24:59+00:00","dateModified":"2021-03-08T21:15:26+00:00","author":{"@id":"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632"},"breadcrumb":{"@id":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/modifier-le-definer-et-la-securite-des-procedures-fonctions-mysql.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.netexpertise.eu\/fr"},{"@type":"ListItem","position":2,"name":"Modifier le DEFINER et la S\u00e9curit\u00e9 des Proc\u00e9dures\/Fonctions Mysql"}]},{"@type":"WebSite","@id":"http:\/\/www.netexpertise.eu\/fr\/#website","url":"http:\/\/www.netexpertise.eu\/fr\/","name":"Netexpertise","description":"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632","name":"dave","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/","url":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","caption":"dave"},"sameAs":["http:\/\/www.netexpertise.eu"]}]}},"_links":{"self":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/682"}],"collection":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/comments?post=682"}],"version-history":[{"count":0,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/682\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/media?parent=682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/categories?post=682"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/tags?post=682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}