MySQL est un système de gestion de base de données relationnelle open source multiplateforme. Il s'agit de la base de données la plus économique et la plus abordable que nous utilisons couramment. En raison de sa petite taille, de sa vitesse rapide et de son faible coût total de possession, en particulier la fonctionnalité open source, elle permet aux utilisateurs. pour obtenir les résultats les plus pratiques. Il est vrai que de nombreux utilisateurs ne connaissent pas grand-chose aux principes d'autorisation dans les applications. Analysons-le pour tout le monde. MySQL est un système de gestion de base de données relationnelle open source multiplateforme. Il s'agit de la base de données la plus économique et la plus abordable que nous utilisons couramment. En raison de sa petite taille, de sa vitesse rapide et de son faible coût total de possession, en particulier la fonctionnalité open source, elle permet aux utilisateurs. pour obtenir les résultats les plus pratiques. Il est vrai que de nombreux utilisateurs ne connaissent pas grand-chose aux principes d'autorisation dans les applications. Analysons-le pour tout le monde.
Situation de redémarrage du serveur
Lorsque mysqld démarre, tout le contenu de la table d'attribution est lu en mémoire et devient effectif à partir de ce moment.
Lorsqu'il est appliqué immédiatement par le serveur
Les modifications apportées à la table d'autorisation à l'aide de GRANT, REVOKE ou SET PASSWORD seront immédiatement remarquées par le serveur.
Modification directe du formulaire d'autorisation
Si vous modifiez les tables de droits manuellement (en utilisant INSERT, UPDATE, etc.), vous devez exécuter une instruction FLUSH PRIVILEGES ou exécuter mysqladmin flush-privileges pour indiquer au serveur de recharger les tables de droits, sinon vos modifications ne prendront effet que si vous redémarrez. le serveur.
Impact sur les connexions clients existantes
Lorsque le serveur remarque que la table d'autorisation a été modifiée, les connexions client existantes ont les effets suivants :
·Les autorisations de table et de colonne prennent effet à la prochaine demande du client.
· Les modifications des autorisations de base de données prendront effet lors de la prochaine commande USE db_name.
· Les modifications globales des autorisations et des mots de passe prendront effet lors de la prochaine connexion du client.
Principe de délégation
Peu importe à quel point vous êtes prudent, vous laisserez inévitablement des failles lors de l'autorisation des utilisateurs. J'espère que le contenu suivant pourra vous aider. Vous devez généralement respecter ces règles.
Seul l'utilisateur root a le droit de réécrire la table d'autorisation
N'accordez pas le droit de réécrire la table d'autorisation à d'autres utilisateurs à l'exception de l'utilisateur root (bien sûr, si vous pouvez utiliser un autre utilisateur pour remplacer l'utilisateur root pour la gestion, pour augmenter la sécurité). Pour cette raison, les utilisateurs peuvent remplacer les autorisations existantes en écrasant la table d'autorisation. Créez des failles de sécurité.
Normalement, vous ne pouvez pas commettre cette erreur, mais après avoir installé une nouvelle distribution, table d'autorisation initiale. Cette vulnérabilité existe et vous pouvez commettre des erreurs si vous ne comprenez pas le contenu du formulaire d'autorisation pour le moment.
Sous Unix (Linux), après avoir installé MySQL selon les instructions du manuel, vous devez exécuter le script mysql_install_db pour établir la base de données mysql comprenant la table d'autorisation et les autorisations initiales. Sous Windows, exécutez le programme d'installation dans la distribution pour initialiser le répertoire de données et la base de données MySQL. On suppose que le serveur est également en cours d'exécution.
Lorsque vous installez MySQL pour la première fois sur votre machine, les tables d'autorisation de la base de données mysql sont initialisées comme ceci :
· Vous pouvez vous connecter en tant que root depuis localhost sans spécifier de mot de passe. L'utilisateur root possède tous les droits (y compris les droits d'administration) et peut tout faire. (D'ailleurs, le superutilisateur MySQL et le superutilisateur Unix portent le même nom et n'ont rien à voir l'un avec l'autre.)
· L'accès anonyme est accordé aux utilisateurs qui peuvent se connecter localement à la base de données nommée test et à tout nom de base de données commençant par test_. Les utilisateurs anonymes peuvent tout faire sur la base de données mais n'ont aucun droit d'administrateur.
Généralement, il est recommandé de supprimer les enregistrements d'utilisateurs anonymes :
mysql> DELETE FROM utilisateur WHERE User="";
Pour aller plus loin, supprimez également tous les utilisateurs anonymes dans d'autres tables d'autorisation, les tables avec les colonnes User sont db, tables_priv et columns_priv.
Définissez également un mot de passe pour l'utilisateur root.
À propos des paramètres d'utilisateur, de mot de passe et d'hôte
·Utilisez des mots de passe pour tous les utilisateurs MySQL.
N'oubliez pas que si other_user n'a pas de mot de passe, n'importe qui peut se connecter comme n'importe qui d'autre simplement avec mysql -u other_user db_name. Pour les applications client/serveur, il est courant que le client spécifie n'importe quel nom d'utilisateur. Avant de l'exécuter, vous pouvez modifier les mots de passe de tous les utilisateurs, ou simplement le mot de passe root MySQL, en éditant le script mysql_install_db, comme ceci :
shell> mysql -u racine mysql
mysql> MISE À JOUR de l'utilisateur SET Mot de passe=PASSWORD('new_password')
-> OÙ utilisateur='root';
mysql> PRIVILÈGES FLUSH ;