Maison >Problème commun >Quelles sont les tables d'autorisations de la base de données MySQL ?

Quelles sont les tables d'autorisations de la base de données MySQL ?

百草
百草original
2023-06-15 09:27:072972parcourir

Les tables d'autorisations de base de données MySQL comprennent : 1. la table utilisateur, utilisée pour enregistrer les informations de compte autorisées à se connecter au serveur. Toutes les autorisations activées dans cette table sont globales et applicables à toutes les bases de données. 2. la table db, qui stocke l'opération des utilisateurs ; autorisations pour une certaine base de données ; 3. table tables_priv, utilisée pour définir les autorisations sur une seule table ; 4. table columns_priv, utilisée pour définir les autorisations sur une seule colonne de données ; 5. table procs_priv, utilisée pour définir les autorisations sur les procédures stockées et les fonctions stockées ; Définissez les paramètres d'autorisation.

Quelles sont les tables d'autorisations de la base de données MySQL ?

Le système d'exploitation de ce tutoriel : système Windows 10, mysql version 8.0, ordinateur Dell G3.

Dans la base de données MySQL, les tables d'autorisation incluent la table user, la table db, la table tables_priv, la table columns_priv et la table procs_priv.

1. Table des autorisations utilisateur

La table des utilisateurs est la table des autorisations 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'autorisations, les colonnes de sécurité et les colonnes de contrôle des ressources.

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.

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 pour fermer des services, les super autorisations et charger des utilisateurs principalement ; 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.

  • 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 comme indiqué dans le tableau suivant :

OUI Définir la durée de validité du mot de passe, L'unité est le nombre de joursaccount_lockedenum('N','Y')NONSi l'utilisateur est verrouillé (Y verrouillé, N débloqué)

Remarque : Même si password_expired vaut "Y", l'utilisateur peut toujours utiliser le mot de passe pour se connecter à MySQL, mais aucune opération n'est autorisée.

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.

Colonne de sécurité de la table utilisateur
Nom du champ Type de champ S'il est vide Valeur par défaut Description
ssl_type enum('','ANY' ,'X509', 'SPÉCIFIÉ') NON
Supporte le champ de sécurité de cryptage standard SSL
ssl_cipher blob NON
Supporte le champ de sécurité de cryptage standard SSL
x509_issuer blob NON
Prise en charge des champs standard x509
x509_subject blob NON
Prise en charge des champs standard x509
plugin char(64) NON mysql_native_password Présentation plugins Pour la vérification du mot de passe lorsque les utilisateurs se connectent, le plugin crée des utilisateurs externes/proxy
password_expired enum('N','Y') NO N Si le mot de passe a expiré (N n'a pas expiré , y a 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)
La 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 autorisées pour effectuer des requêtes par heure
max_updates int(11) unsigned NO 0 Spécifie le nombre d'opérations autorisées pour effectuer des mises à jour par heure
max_connections 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 pouvant être établies simultanément

La valeur par défaut des champs ci-dessus est 0, ce qui indique qu'il n'y a aucune 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. Vous pouvez utiliser l'instruction GRANT pour mettre à jour les valeurs de ces champs.

2. table db

la table db est couramment utilisée et est une table d'autorisations très importante dans la base de données MySQL. La table stocke les autorisations de fonctionnement de l'utilisateur pour une certaine base de données. Les champs du tableau peuvent être grossièrement divisés en deux catégories, à savoir les colonnes utilisateur et les colonnes d'autorisation.

Colonne utilisateur

La colonne utilisateur de la table db comporte 3 champs, à savoir Hôte, Utilisateur et Db, qui identifient l'autorisation d'opération d'un utilisateur pour se connecter à une certaine base de données à partir d'un certain hôte. La combinaison de ces 3 champs constitue la base de données. déposer la clé primaire.

La liste des utilisateurs de la table de base de données est affichée dans le tableau suivant :

Nom du champ Type de champ S'il est vide Valeur par défaut Description
Hôte char(60 ( 32) NON Aucun Nom d'utilisateur

Colonne d'autorisations

La colonne d'autorisation dans la table db est à peu près la même que la colonne d'autorisation dans la table utilisateur, sauf que les autorisations dans la table utilisateur concernent toutes les bases de données, tandis que les autorisations dans la table db ne concernent que la base de données spécifiée. Si vous souhaitez que l'utilisateur dispose d'autorisations d'opération uniquement pour une certaine base de données, vous pouvez d'abord définir les autorisations correspondantes dans la table utilisateur sur N, puis définir les autorisations d'opération pour la base de données correspondante dans la table db.

3. table tables_priv

La table tables_priv est utilisée pour définir les autorisations sur une seule table. tableau suivant :

DescriptionHostchar(60)NO无hostDbchar(64)UtilisateurTable_name# 🎜 🎜#char(64)NO无Nom de la tablechar(93)# 🎜 🎜#TimestamptimestampNOCURRENT_TIMESTAMP Créer' ,'Drop','Grant','References','Index','Alter','Create View','Show view','Trigger')AucunAucun indique les autorisations d'opération sur les colonnes du tableau, notamment Sélection, Insertion, Mise à jour et Références

4. La table columns_priv

la tablecolumns_priv est utilisée pour définir les autorisations sur une seule colonne de données. La structure de la table columns_priv est celle indiquée dans le tableau suivant :

Nom du champ Type de champ Est-il vide Valeur par défaut# 🎜🎜#
#🎜🎜 #NO Nom de la base de données
char(32) NO Username
#🎜🎜 # Concédant
NO Utilisateur ayant modifié cet enregistrement
#🎜 🎜#Mod ifier cet enregistrement Heure Table_priv set('Sélectionner','Insérer','Mettre à jour','Supprimer','
NO #🎜 🎜#
Indique les autorisations d'opération sur la table, notamment Sélectionner, Insérer, Mettre à jour, Supprimer, Créer, Supprimer, Accorder, Références, Indexer et Modifier, etc.
# 🎜🎜#
Column_priv set('Sélectionner','Insérer','Mettre à jour','Références') NO#🎜 🎜 #
AucunTable_nameColumn_namechar( 64)NOAucunNom de la colonne de données, utilisé pour spécifier quelles colonnes de données ont des autorisations d'opérationTimestamptimestampNOCURRENT_TIMESTAMPL'heure de modification de l'enregistrement Column_priv set('Select','Insert','Update','References')NONoneIndique les autorisations d'opération sur les colonnes du tableau, notamment Select, Insert, Update et References

5. table procs_priv

La table procs_priv peut définir des autorisations pour les procédures stockées et les fonctions stockées. il est vide

Nom du champ . Champ type Est-il vide Valeur par défaut Description
Hôte char(60) NON Aucun Hôte
Db char( 64) NON Aucun Nom de la base de données
Valeur par défautDescriptionHôtechar(60)NONAucunNom d'hôteDbchar(64)NONAucunNom de la base de données Utilisateurchar(32)NONAucunNom d'utilisateurNom_routinechar(64)NONAucun représente le nom d'une procédure stockée ou d'une fonction Routine_type enum('FUNCTION','PROCEDURE')NONoneIndique le type de procédure stockée ou de fonction Le champ Routine_type a deux valeurs, à savoir FUNCTION et PROCEDURE. FUNCTION signifie qu'il s'agit d'une fonction ; PROCEDURE signifie qu'il s'agit d'une procédure stockée. GrantorarChar (93) Non Non

insertion ou modification de l'utilisateur enregistré
Proc_priv set ('Execute', 'Alter Routine', 'GRANT') NON Aucun indique les autorisations dont vous disposez, y compris les types Exécuter, Modifier la routine et Accorder 3
Timestamp timestamp NO CURRENT_TIMESTAMP indique l'heure de mise à jour de l'enregistrement

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