Maison  >  Article  >  base de données  >  Introduction détaillée à la gestion des autorisations dans MySQL

Introduction détaillée à la gestion des autorisations dans MySQL

黄舟
黄舟original
2017-03-01 14:10:011749parcourir


Gestion des autorisations


Le système d'autorisation MySQL s'authentifie à travers les deux étapes suivantes :

  • Effectuez l'authentification de l'identité des utilisateurs connectés. Les utilisateurs légaux sont authentifiés et les utilisateurs illégaux se voient refuser la connexion.

  • Accordez les autorisations correspondantes aux utilisateurs légaux authentifiés, et les utilisateurs peuvent effectuer les opérations correspondantes sur la base de données dans le cadre de ces autorisations.
    Dans le processus d'accès aux autorisations, cela implique principalement la table user et la table db sous la base de données mysql. La structure des données de la table utilisateur est la suivante :
    Introduction détaillée à la gestion des autorisations dans MySQL
    La structure des données de la table db est la suivante :
    Introduction détaillée à la gestion des autorisations dans MySQL
    Description de la table : Elle contient des colonnes utilisateur, colonnes d'autorisation, colonnes de sécurité et colonnes de contrôle des ressources. Les plus fréquemment utilisées sont la colonne utilisateur et la colonne autorisations. Les autorisations sont divisées en autorisations normales et autorisations de gestion. Opérations de base de données d'utilisateurs d'autorisations ordinaires telles que select_priv, insert_priv, etc. Les autorisations de gestion sont principalement utilisées pour gérer les opérations de base de données, telles que process_priv, super_priv, etc.
    Lorsqu'un utilisateur se connecte, le processus d'accès à la table d'autorisation :

  • Déterminez d'abord l'adresse IP et l'utilisateur connectés à partir des trois champs d'hôte, d'utilisateur et de mot de passe dans la table utilisateur. le nom et le mot de passe existent dans la table, s'ils existent, la vérification est réussie, sinon la connexion est refusée.

  • Après avoir réussi l'authentification, obtenez les autorisations de la base de données dans l'ordre du tableau d'autorisations suivant : user->db->tables->priv->columns_priv. Les autorisations globales couvrent les autorisations locales. Par exemple, si un utilisateur dispose d'une autorisation de sélection dans la table utilisateur, il aura alors l'autorisation de sélection sur toutes les colonnes de toutes les tables de toutes les données.
    Introduction détaillée à la gestion des autorisations dans MySQL
    Description détaillée de la recherche d'autorisation : lorsque l'utilisateur réussit l'authentification des autorisations, lors de l'attribution des autorisations, les autorisations sont attribuées dans l'ordre utilisateur->db->tables_priv->columns_priv, qui c'est-à-dire que les autorisations sont vérifiées en premier par l'utilisateur de la table, si l'autorisation correspondante dans la table utilisateur est Y, alors toutes les autorisations de base de données correspondant à l'utilisateur sont Y, et db, tables_priv et columns_priv ne seront plus vérifiées si c'est N, les autorisations de base de données spécifiques de l'utilisateur seront recherchées dans la table de base de données. Si vous obtenez l'autorisation Y dans la base de données, vous ne ferez pas de recherche. Sinon, vous vérifierez tables_priv pour voir les autorisations de table spécifiques correspondant à la base de données. Oui, vous ne rechercherez pas. Sinon, vous vérifierez la table columns_priv pour voir les autorisations de colonne spécifiques correspondantes. Ceci est important lorsque nous accordons des autorisations aux utilisateurs.

Gestion de compte

Créer un utilisateur

Pour créer un utilisateur, vous pouvez utiliser la syntaxe d'octroi pour créer ou exploiter directement la table des utilisateurs.
Méthode 1 :
Exploiter directement la table d'utilisation
insérer dans user(Host,User,Password) valeurs("127.0.0.1","test",password("51testit" ) );
Méthode 2 :
Format CRÉER UN UTILISATEUR 'nom d'utilisateur'@'hôte' IDENTIFIÉ PAR 'mot de passe';
par exemple : CRÉER UN UTILISATEUR 'test'@'127.0.0.1' IDENTIFIÉ PAR '51testit';
Introduction détaillée à la gestion des autorisations dans MySQL
Après la création, connectez-vous comme suit :
Introduction détaillée à la gestion des autorisations dans MySQL
Méthode de cryptage MySQL : le cryptage MYSQL323 génère une chaîne de 16 bits, tandis que ce qui survit dans MySQLSHA1 est une chaîne de 41 bits . Parmi eux, n'est pas ajouté à l'opération de mot de passe proprement dite. On observe que de nombreux utilisateurs portent "", et le "*" est supprimé lors du processus de piratage proprement dit. Les chiffres du mot de passe crypté par MySQLSHA1 sont de 40 personnes.
Description du champ Hôte

  • La valeur Hôte peut être le nom d'hôte ou le numéro IP, ou locahost représente l'hôte local.

  • Vous pouvez utiliser les caractères génériques "%" et "_" devant la valeur de la colonne hôte. "%" signifie qu'une valeur d'hôte vide est égale à "%". . Par exemple, "%.myweb.com" correspond à tous les hôtes de tous les domaines mysql.com. Le cas est le suivant :

Host User 解析
myweb.wang pps pps,从myweb.wang连接
% pps pps,从任何主机连接
% 任何用户,从任何主机连接
122.164.35.127 pps pps,从122.164.35.127连接
122.164.35.% pps pps,从122.164.35.类型子网的任何主机连接

Afficher les autorisations des utilisateurs

Pour le test créé ci-dessus, je n'ai effectué aucune opération d'autorisation lorsque j'ai utilisé l'utilisateur de test pour faire fonctionner la base de données, j'ai trouvé :
Introduction détaillée à la gestion des autorisations dans MySQL
Non. autorisations d'opération de base de données, comment puis-je vérifier les autorisations dont dispose un utilisateur ?
Afficher les autorisations
Première méthode :
afficher les autorisations pour test@127.0.0.1 ;
Méthode deux :
Afficher les autorisations enregistrées dans la table des utilisateurs.
sélectionnez * dans mysql.user où user='test' et host='127.0.0.1' G ;
Introduction détaillée à la gestion des autorisations dans MySQL

Accorder des autorisations

Le format de syntaxe est le suivant suit :
accordez [privilege1|privilege2|all privilèges] sur dbName|.tableName ou à user@hostName
Lors de l'octroi de l'autorisation de sélection xxpt à l'utilisateur test :
grant select On xxpt.* to test.127.0.0.1;
La table db a changé et un nouvel enregistrement a été ajouté. Mais la table des utilisateurs n'a pas changé. Comme suit :
Introduction détaillée à la gestion des autorisations dans MySQL
À l'heure actuelle, vous pouvez utiliser l'utilisateur test pour effectuer des opérations de requête de données, mais vous ne pouvez pas ajouter, supprimer ou modifier. Accordez-lui donc toutes les autorisations sur la base de données xxpt.
accordez tous les privilèges sur xxpt.* à test@127.0.0.1 ;
Les autorisations de test utilisateur sont les suivantes :
Introduction détaillée à la gestion des autorisations dans MySQL
Vous pouvez mettre à jour les données à ce moment
Introduction détaillée à la gestion des autorisations dans MySQL
Autorisations de gestion accorder sueper, process, file Accorder sueper, process, file On
. à 'test'@'127.0.0.1'; Le on dans l'instruction ne peut être suivi que de
. Remarque : l'autorisation d'utilisation est utilisée pour la connexion et ne peut effectuer aucune opération.

Supprimer les autorisations

Utilisez l'octroi pour ajouter des autorisations et révoquer pour recycler les autorisations. Bien entendu, les autorisations peuvent être révoquées et vous pouvez également opérer directement sur les tables user, db, tables_priv et columns_priv. Toutefois, l'autorisation d'utilisation ne peut pas être révoquée.

Pour révoquer les autorisations de lecture et d'écriture du test sur toutes les bases de données :
révoquer la sélection, insérer sur
. de test@127.0.0.1;

Changer le mot de passe

1. Utilisez mysqladmin

2. Utilisez le mot de passe défini pour test@127.0.0.1 =password('isayhello');
3. Passer l'utilisation de l'autorisation
autoriser l'utilisation sur
. pour 'tester' '@'127.0.0.1' identifié par 'isayhello' ; 4. Modifier directement la table utilisateur
mettre à jour l'ensemble d'utilisateurs Password=password("newpassword") où
*** ;

Compléter les autorisations dans mysql

CRÉERDROPOPTION D'OBTENTIONRÉFÉRENCESALTERAutorisation de suppression des donnéesINDEXTableauAutorisations d'indexationINSÉRERTableauINSÉRER autorisationsSELECTTableAutorisations de requêteMISE À JOURTableau

Autorisations                                                                                                        

Niveau d'autorisation

Description de l'autorisation

Base de données, table ou index

Créer une base de données , autorisations de table ou d'index

base de données ou table

Supprimer les autorisations de base de données ou de table

Base de données, table ou programme enregistré

Accorder des options d'autorisation

Base de données ou table

Table

Changement la table, comme l'ajout de champs, d'index, etc.

MISE À JOUR DES AUTORISATIONS

CRÉER UNE VUE

Afficher

CRÉER DES AUTORISATIONS DE VUE

AFFICHER LA VUE

VUE

Afficher les autorisations d'affichage

ALTER ROUTINE

Procédure de magasin

CHANGER LES AUTORISATIONS DE LA PROCÉDURE STOCKÉE

CRÉER UNE ROUTINE

PROCÉDURE STOCKÉE

CRÉER DES AUTORISATIONS DE PROCÉDURE STOCKÉE

EXÉCUTER

PROCÉDURE STOCKÉE

Exécuter l'autorisation de procédure stockée

FILE

Accès aux fichiers sur l'hôte du serveur

Droits d'accès aux fichiers

CRÉER DES TABLES TEMPORAIRES

Gestion du serveur

Créer des autorisations de table temporaires

VERROUILLER LES TABLES

Gestion du serveur

Autorisation de verrouillage de la table

CRÉER UN UTILISATEUR

Gestion du serveur

CRÉER DES AUTORISATIONS UTILISATEUR

PROCESSUS

Gestion du serveur

Afficher les autorisations de processus

RELOAD

Gestion du serveur

Autorisation d'exécuter des commandes de vidage, de journaux de vidage, de privilèges de vidage, de statut de vidage, de tables de vidage, de threads de vidage, d'actualisation, de rechargement et d'autres commandes

CLIENT DE RÉPLICATION

Gestion du serveur

Autorisations de copie

ESCLAVE DE RÉPLICATION

Gestion du serveur

Autorisations de copie

AFFICHER LES BASES DE DONNÉES

Gestion du serveur

Afficher les autorisations de la base de données

ARRÊT

Gestion du serveur

Fermer les autorisations de la base de données

SUPER

Gestion du serveur

Exécuter l'autorisation de tuer le thread

Comment les autorisations MYSQL sont distribuées, c'est-à-dire quelles autorisations peuvent être définies pour les tables, quelles autorisations peuvent être définies pour les colonnes, etc. Cela peut être expliqué à partir d'un tableau dans la documentation officielle :

权限分布

可能的设置的权限

表权限

‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’

列权限

‘Select’, ‘Insert’, ‘Update’, ‘References’

过程权限

‘Execute’, ‘Alter Routine’, ‘Grant’


Distribution des autorisations


Autorisations des paramètres possibles Autorisations de table'Sélectionner', 'Insérer', 'Mettre à jour', 'Supprimer', 'Créer ', ' Drop', 'Grant', 'References', 'Index', 'Alter'Autorisations de colonne 'Sélectionner', 'Insérer', 'Mettre à jour', 'Références'Autorisations de processus 'Execute', 'Alter Routine', 'Grant' Ce qui précède est l'introduction détaillée de la gestion des autorisations dans MySQL , et plus encore. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !
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