Maison  >  Article  >  base de données  >  MySQL a-t-il une table utilisateur ?

MySQL a-t-il une table utilisateur ?

青灯夜游
青灯夜游original
2022-02-24 18:43:572895parcourir

mysql a une table utilisateur. La table utilisateur est une table d'autorisation dans MySQL, utilisée pour enregistrer les informations de compte autorisées à se connecter au serveur ; les champs de la table utilisateur peuvent être grossièrement divisés en quatre catégories, à savoir les colonnes utilisateur, les colonnes d'autorisation, les colonnes de sécurité et le contrôle des ressources. colonnes.

MySQL a-t-il une table utilisateur ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql5.7, ordinateur Dell G3.

mysql a une table utilisateur.

La table utilisateur est la table d'autorisation la plus importante dans MySQL, utilisée pour enregistrer les informations de compte autorisées à se connecter au serveur. Il convient de noter que toutes les autorisations activées dans la table user sont globales et s'appliquent à toutes les bases de données.

Les champs de la table utilisateur peuvent être grossièrement divisés en 4 catégories, à savoir les colonnes utilisateur, les colonnes d'autorisation, les colonnes de sécurité et les colonnes de contrôle des ressources. Ce qui suit présente principalement la signification de ces champs.

Colonne Utilisateur

La colonne utilisateur stocke les informations que les utilisateurs doivent saisir lors de la connexion à la base de données MySQL. Il convient de noter que la version MySQL 5.7 n'utilise plus le mot de passe comme champ de mot de passe, mais l'a remplacé par Authentication_string.

La liste des utilisateurs pour MySQL version 5.7 est présentée dans le tableau 1.

Tableau 1 : Colonne utilisateur de la table utilisateur
Nom du champ Type de champ Est-il vide Valeur par défaut Description
Hôte char(60) NON Aucun Nom d'hôte
Utilisateur char(32) NON Aucun Nom d'utilisateur
authentication_string text OUI Aucun Mot de passe

Lorsqu'un utilisateur se connecte, si ces trois champs correspondent en même temps, le système de base de données MySQL lui permettra de se connecter. Lors de la création d'un nouvel utilisateur, les valeurs de ces trois champs sont également définies. Lorsque vous modifiez le mot de passe d'un utilisateur, vous modifiez en fait la valeur du champ chaîne_authentification de la table utilisateur. Ces 3 champs déterminent donc si l'utilisateur peut se connecter.

Colonne Permission

Les champs de la colonne Permission déterminent les autorisations de l'utilisateur et sont utilisés pour décrire les opérations autorisées sur les données et les bases de données dans la portée globale.

Les autorisations sont grossièrement divisées en deux catégories, à savoir les autorisations de gestion avancées et les autorisations ordinaires :

  • Les autorisations de gestion avancées gèrent principalement la base de données, telles que les autorisations de fermeture de services, les super autorisations et le chargement des utilisateurs ; faire fonctionner la base de données, comme les autorisations de requête, les autorisations de modification, etc.

  • Les colonnes d'autorisation de la table utilisateur incluent Select_priv, Insert_priv et d'autres champs se terminant par priv. Le type de données de ces valeurs de champ est ENUM. Les seules valeurs possibles sont Y et N : Y signifie que le. L'utilisateur dispose des autorisations correspondantes, et N signifie que l'utilisateur dispose des autorisations correspondantes. L'utilisateur n'a pas les autorisations correspondantes. Pour des raisons de sécurité, la valeur par défaut de ces champs est N.

    enum ('n', 'y') enum (' 'N','Y')enum('N','Y') enum('N' ,'Y')enum('N','Y')enum('N ','Y')enum('N','Y')enum('N','Y' )enum('N','Y')enum('N','Y')enum ( 'N','Y')enum('N','Y')enum ('n', 'y') enum('N ','Y ')enum('N','Y')enum('N','Y')enum('N','Y')enum ('N','Y')enum('N','Y')
    Table 2 : Colonne d'autorisation de la table utilisateur
    Nom du champ Type de champ S'il est vide Valeur par défaut Description
    Select_priv enum('N',' Y') NON N Est-il possible d'interroger des données via la commande SELECT
    Insert_priv enum('N','Y') NO N Est-il possible d'insérer des données via la commande INSERT
    Update_priv enum('N','Y') NO N Les données existantes peuvent-elles être modifiées via la commande UPDATE
    Delete_priv enum('N', 'Y') NON N Est-il possible de supprimer des données existantes via la commande DELETE
    Create_priv enum('N','Y') NON N Est-ce possible pour créer de nouvelles bases de données et tables
    Drop_priv enum('N','Y') NON N Est-il possible de supprimer des bases de données et des tables existantes
    Reload_priv enum(' N','Y') NON N Est-il possible d'exécuter des commandes spécifiques pour vider et recharger les différents caches internes utilisés par MySQL, y compris les journaux, les autorisations, les hôtes, les requêtes et les tables
    Shutdown_priv enum('N','Y') NON N Est-il possible d'arrêter le serveur MySQL. Vous devez être très prudent lorsque vous fournissez cette autorisation à un utilisateur autre que le compte root
    Process_priv enum('N','Y') NO N Si elle peut être visualisée via SHOW Commande PROCESSLIST Le processus des autres utilisateurs leFile_priv
    Non n peut-il exécuter les commandes Select into Outfile et Load Data Infile Grant_priv
    NON N Pouvez-vous accorder vos autorisations à d'autres utilisateurs ? Est-il possible de créer des contraintes de clé étrangère Index_priv
    NON N Est-il possible d'effectuer des vérifications d'ajout et de suppression sur l'index Alter_priv
    NO N La structure de la table peut-elle être renommé et modifié Show_db_priv
    NO N Le serveur peut-il être visualisé Nom de toutes les bases de données sur Super_priv
    NON N est-il possible d'exécuter certaines fonctions administratives puissantes, telles que celles auxquelles l'utilisateur dispose de droits d'accès suffisants, telles que Utiliser la commande KILL pour supprimer le processus utilisateur ; Commande SET GLOBAL pour modifier les variables MySQL globales et exécuter diverses commandes concernant la réplication et la journalisation. (Super autorisations) Create_tmp_table_priv
    NO N Des tables temporaires peuvent-elles être créées Lock_tables_priv
    NON N Est-il possible d'utiliser la commande LOCK TABLES pour empêcher l'accès/modification des tables Execute_priv
    NO N Si la procédure stockée Repl_slave_priv
    NO N peut lire le fichier journal binaire utilisé pour maintenir un environnement de base de données répliqué Repl_client_priv
    NON N Est-il possible de déterminer l'emplacement du serveur esclave et du serveur maître de réplication Create_view_priv
    No n est-il possible de créer une vue show_view_priv
    No n est-il possible de voir une vue Create_routine_priv
    NO N Les procédures et fonctions stockées peuvent-elles être modifiées ou supprimées Alter_routine_priv
    NO N Le stockage peut-il être modifié ou supprimé Fonctions et fonctions Create_user_priv
    NO N S'il est possible d'exécuter la commande CREATE USER, qui est utilisé pour créer un nouveau compte MySQL Event_priv
    NO N Les événements peuvent-ils être créés, modifiés et supprimés Trigger_priv
    NO N Est-il possible de créer et de supprimer des déclencheurs Create_tablespace_priv
    NO N Est-il possible de créer un tablespace

    Si vous souhaitez modifier les autorisations, vous pouvez utiliser l'instruction GRANT pour accorder certaines autorisations à l'utilisateur, ou vous pouvez définir des autorisations en mettant à jour la table utilisateur avec l'instruction UPDATE.

    Colonne de sécurité

    La colonne de sécurité est principalement utilisée pour déterminer si l'utilisateur peut se connecter avec succès. La colonne de sécurité dans le tableau des utilisateurs est présentée dans le tableau 3 :

    Tableau 3 : Colonne de sécurité de l'utilisateur. table
    Nom du champ Type de champ Est-il vide ? Valeur par défaut Description
    ssl_type enum('','ANY','X509','SPECIFIED') NON Champ de sécurité de cryptage standard SSL pris en charge
    ssl_cipher blob NON Supporte le champ de sécurité de cryptage standard SSL
    x509_issuer blob NON Supporte la norme x509 field
    x509_subject blob NO Supporte les champs standard x509
    plugin char(64) NO mysq password Plugins introduits pour la vérification du mot de passe lorsque les utilisateurs se connectent, plugin crée un utilisateur externe/proxy
    password_expired enum('N','Y') NO N Le mot de passe est-il expiré (N n'est pas expiré, y est expiré)
    password_last_changed timestamp OUI Enregistrez l'heure à laquelle le mot de passe a été modifié pour la dernière fois
    password_lifetime smallint(5) unsigned OUI Définissez la durée de validité du mot de passe en jours
    compte_verrouillé enum('N','Y ') NO N Si l'utilisateur est verrouillé (Y verrouillé, N déverrouillé)

    Remarque : même si password_expired est "Y", l'utilisateur peut utilisez également le mot de passe pour vous connecter à MySQL, mais vous n'êtes pas autorisé à faire quoi que ce soit.

    Habituellement, les distributions standard ne prennent pas en charge SSL. Les lecteurs peuvent utiliser l'instruction SHOW VARIABLES LIKE "have_openssl" pour vérifier si elle dispose de la fonctionnalité SSL. Si la valeur de have_openssl est DISABLED, la fonctionnalité de chiffrement SSL n'est pas prise en charge.

    Colonne de contrôle des ressources

    Les champs de la colonne de contrôle des ressources sont utilisés pour limiter les ressources utilisées par les utilisateurs. Les colonnes de contrôle des ressources de la table des utilisateurs sont présentées dans le tableau 4.

    Tableau 4 : Colonne de contrôle des ressources de la table utilisateur
    Nom du champ Type de champ S'il est vide Valeur par défaut Description
    max_questions int(11 ) non signé NON 0 Spécifie le nombre d'opérations de requête autorisées par heure
    max_updates int(11) unsigned NO 0 Spécifie le nombre d'opérations de mise à jour autorisées par heure
    max_connect ions int (11) unsigned NO 0 Spécifie le nombre d'opérations de connexion autorisées à être effectuées par heure
    max_user_connections int(11) unsigned NO 0 Spécifie le nombre de connexions autorisé à être établi simultanément

    La valeur par défaut des champs ci-dessus est 0, ce qui signifie qu'il n'y a pas de limite. Si le nombre de requêtes ou de connexions utilisateur dépasse la limite de contrôle des ressources dans une heure, l'utilisateur sera verrouillé et ne pourra pas effectuer les opérations correspondantes ici avant l'heure suivante. Les valeurs de ces champs peuvent être mises à jour à l'aide de l'instruction GRANT.

    【Recommandation associée : tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn