debian-sys-maint : permissions requises
D'autres réponses ont suffisamment abordé tous les points, à l'exception de l'ensemble minimal de permissions requises pour l'utilisateur debian-sys-maint. La plupart des réponses données ici sont tout simplement erronées à cet égard, et en fait dangereuses. Ne réduisez pas les privilèges de debian-sys-maint (y compris l'option grant) sans avoir lu et compris ce qui suit :
Le responsable Debian n'a pas donné tous les privilèges à l'utilisateur de manière capricieuse. Voici ce qui est nécessaire, où et pourquoi. Certains de ces privilèges sont des supersets d'autres, mais je vais les lister indépendamment au cas où vous voudriez personnaliser les choses et supprimer leur nécessité :
-
arrêt y recharger pour l'arrêt ou la fermeture d'une base de données, par /etc/init.d/mysql.
-
select sur mysql.user nécessaire pour les contrôles d'intégrité effectués au démarrage de la base de données, afin de s'assurer qu'il existe un utilisateur root. Fait à chaque démarrage par /etc/mysql/debian-start (appelé par /etc/init.d/mysql) avec le code réel dans la fonction check_root_accounts dans le fichier /usr/share/mysql/debian-start.inc.sh
-
select on information_schema.tables , sélection globale nécessaire à la vérification des tables plantées. Fait à chaque démarrage par /etc/mysql/debian-start (appelé par /etc/init.d/mysql) avec le code actuel dans la fonction check_for_crashed_tables dans le fichier /usr/share/mysql/debian-start.inc.sh
-
global tous les privilèges nécessaire pour mettre à niveau les tables si/quand une nouvelle version de MySQL est installée par le biais d'une mise à jour ou d'une mise à niveau de Debian. Fait à chaque démarrage par /etc/mysql/debian-start (appelé par /etc/init.d/mysql) avec le code réel dans la fonction upgrade_system_tables_if_necessary dans le fichier /usr/share/mysql/debian-start.inc.sh - appelle en fait le binaire MySQL mysql_upgrade - ne vous laissez pas tromper par le nom de la fonction (upgrade_system_tables_if_necessary), ceci peut potentiellement toucher toutes les tables - voir ci-dessous
Le dernier point est, bien sûr, la principale exigence en matière de privilèges. La page de manuel de mysql_upgrade indique que :
mysql_upgrade examine toutes les tables de toutes les bases de données à la recherche de incompatibilités avec la version actuelle de MySQL Server. mysql_upgrade met également à niveau les tables système afin que vous puissiez afin que vous puissiez profiter des nouveaux privilèges ou des capacités ajoutées.
Si mysql_upgrade trouve qu'une table a une incompatibilité possible, il effectue une vérification de la table et, si des problèmes sont trouvés, tente une réparation de la table. réparation de la table.
AVERTISSEMENT Si vous décidez de réduire les privilèges de debian-sys-maint, assurez-vous d'être prêt à gérer manuellement toutes les futures mises à jour de sécurité et/ou mises à niveau de debian qui concernent MySQL. Si vous effectuez une mise à jour des paquets MySQL avec un privilège réduit de debian-sys-maint, et si mysql_upgrade ne peut pas se terminer en conséquence, cela peut laisser votre base de données dans un état indéfini (lire cassé). La réduction des privilèges peut n'avoir aucun problème apparent au quotidien jusqu'à ce qu'une mise à jour soit effectuée, donc ne vous fiez pas au fait que vous avez déjà réduit des privilèges sans effets néfastes pour penser que c'est sans danger.