Maison  >  Article  >  base de données  >  Comment créer de nouvelles autorisations et définir un mot de passe dans MySQL

Comment créer de nouvelles autorisations et définir un mot de passe dans MySQL

藏色散人
藏色散人original
2020-10-23 09:48:033025parcourir

Comment définir un mot de passe pour les nouvelles autorisations dans MySQL : Créez d'abord un utilisateur via la commande CREATE USER ; puis utilisez la commande GRANT pour autoriser, enfin, définissez et modifiez le mot de passe de l'utilisateur via la commande SET PASSWORD.

Comment créer de nouvelles autorisations et définir un mot de passe dans MySQL

Recommandé : "Tutoriel vidéo MySQL"

Utilisateur et autorisation de création MySQL

1. Créer un utilisateur

Commande :

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Description :

username : le nom d'utilisateur que vous allez créer

host : précisez l'hôte sur lequel l'utilisateur peut se connecter dans , s'il s'agit d'un utilisateur local, vous pouvez utiliser localhost. Si vous souhaitez que l'utilisateur se connecte depuis n'importe quel hôte distant, vous pouvez utiliser le caractère générique %

mot de passe : le mot de passe de connexion de l'utilisateur peut être. vide. S'il est vide, l'utilisateur peut Aucun mot de passe n'est requis pour se connecter au serveur

Exemple :

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';

2. Autorisation :

Commande :

GRANT privileges ON databasename.tablename TO 'username'@'host'

Description :

privilèges : autorisations d'opération utilisateur, telles que SELECT, INSERT, UPDATE, etc. Si vous souhaitez accorder toutes les autorisations, utilisez ALL

databasename : nom de la base de données

tablename : nom de la table. Si vous souhaitez accorder à l'utilisateur l'accès à toutes les bases de données, les autorisations d'opération correspondantes de la table de somme peuvent être représentées par *, tel que *.*

Exemple :

GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';

Remarque :

Les utilisateurs autorisés avec la commande ci-dessus ne peuvent pas autoriser d'autres utilisateurs. Si vous souhaitez que l'utilisateur soit autorisé, utilisez la commande suivante :

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

3. Définissez et modifiez l'utilisateur. mot de passe

commande :

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

Si vous êtes l'utilisateur actuellement connecté, utilisez :

SET PASSWORD = PASSWORD("newpassword");

Exemple :

SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

Révoquer les autorisations de l'utilisateur

Commande :

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

Instructions :

privilège, nom de base de données, nom de table : même autorisation Partielle

Exemple :

REVOKE SELECT ON *.* FROM 'pig'@'%';

Remarque :

Si vous autorisez l'utilisateur 'pig'@'%' comme ceci (ou similaire) : GRANT SELECT ON test.user TO 'pig'@'%', puis en utilisant REVOKE SELECT ON *.* FROM 'pig'@ La commande '%' ne peut pas annuler l'opération SELECT de l'utilisateur sur la table utilisateur dans la base de données de test. Au contraire, si l'autorisation utilise GRANT SELECT ON *.* TO 'pig'@'%';, alors la commande REVOKE SELECT ON test.user FROM 'pig'@'%'; table utilisateur dans la base de données de test. Sélectionnez l'autorisation.

Des informations détaillées peuvent être consultées avec la commande SHOW SUBVENTIONS FOR 'pig'@'%';.

5. Supprimer l'utilisateur

Commande :

DROP USER 'username'@'host';

Après avoir installé la version MySQL 5.6 dans Centos7 pendant le développement aujourd'hui, j'ai créé un nouveau compte Weicheng dans le tableau et défini un mot de passe. Cependant, lorsque j'ai utilisé le compte Weicheng pour me connecter à MySQL, j'ai découvert que si j'utilisais "mysql -uweicheng -p" pour me connecter, une erreur serait même signalée. si le mot de passe était correct, je ne pouvais pas me connecter. Finalement, j'ai découvert que je pouvais utiliser directement " mysql -uweicheng" Vous pouvez vous connecter sans saisir de mot de passe.

Plus tard, la raison de l'interrogation des données est la suivante : il devrait y avoir des utilisateurs vides dans la base de données. Si c'est le cas, utilisez

select * from mysql.user where user='';

pour vérifier s'il y en a, puis utilisez

use mysql;
delete from user where user = '';
.

pour supprimer les comptes vides supplémentaires. Ensuite, utilisez

flush privileges;­

pour recharger la table des autorisations, et enfin utilisez

service mysqld restart

pour redémarrer le service mysql.

Astuce :

1. N'oubliez pas de redémarrer le service mysql, sinon cela ne prendra pas effet. Je n'ai pas pu résoudre le problème car je n'ai pas redémarré msyql !

2. La table utilisateur de msyql se trouve dans la table utilisateur de la base de données mysql. Les champs principaux sont l'hôte, l'utilisateur, le mot de passe, etc., qui sont utilisés comme tables principales pour la gestion de MySQL.

Commande d'autorisation d'actualisation mysql : FLUSH PRIVILEGES ; (généralement utilisée après la mise à jour des informations utilisateur de la base de données)

Une autre méthode consiste à redémarrer le serveur 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